Elixirs BEAM VM: Busy Waiting – Optimierung oder Ressourcenverschwendung?
2025-03-29
Benchmarks von Go, Elixir und Node.js zeigten, dass Elixir (auf der BEAM VM) eine hohe CPU-Auslastung aufwies, trotz exzellenter Reaktionsfähigkeit. Der Übeltäter? Busy Waiting, eine BEAM-Optimierung zur Maximierung der Reaktionsfähigkeit. Obwohl dies zu einer irreführenden CPU-Auslastung durch das Betriebssystem führt, ist das Aktivieren von Busy Waiting bei HTTP-Workloads auf dedizierter Hardware sinnvoll. Auf Systemen, die Kernels mit anderer Software teilen, oder auf burstbaren Cloud-Instanzen sollte Busy Waiting jedoch deaktiviert werden, um andere Prozesse nicht zu beeinträchtigen. Tests zeigten keinen signifikanten Performance-Unterschied bei deaktiviertem Busy Waiting für HTTP-Anfragen.
Entwicklung