Kann ein stark ausgelasteter ESX-Server CPU-Spitzen auf Gast-VMs verursachen?

Kann ein stark ausgelasteter ESX-Server CPU-Spitzen auf Gast-VMs verursachen?

Wir haben also eine Reihe von VMs auf einem ESX 4.1-Server für Produkttests laufen. Der ESX-Server ist zeitweise stark ausgelastet. Bei einigen Anwendungsfällen haben wir hohe CPU-Auslastungen festgestellt, aber wir können dies nicht immer reproduzieren. Wenn der ESX-Server als Ganzes stark ausgelastet ist, könnte dies dazu führen, dass Gastcomputer eine hohe CPU-Auslastung aufweisen?

Anders gefragt: Wenn die Gastcomputer mehr CPU-Ressourcen benötigen als der Server hat, welche Auswirkungen hat das auf die CPU-Auslastung laut Betriebssystem und Prozess?

Antwort1

Eine der kanonischen Quellen für ESX-Leistungstipps ist dieHandbuch zur Leistungsfehlerbehebung! (PDF)

Kurz gesagt: Wenn Ihr Host ausgelastet ist und Ihre VMs eine hohe „Bereitschaftszeit“ melden (ein Zähler, der angibt, wann die VM bereit ist, zu arbeiten, aber keine physische CPU für die Maschine gefunden werden kann, die vom Hypervisor eingeplant werden soll), dann sind die Symptome, die Sie erleben, nicht, dass die CPU-Auslastung im Gast hoch ist, sondern dass die einzelnen VMs nicht genügend physische CPU-Zeit erhalten, um ihre Arbeitslast abzuarbeiten. Dies kann sich im Gast als hohe CPU-Auslastung äußern, aber dies ist nur ein Abrechnungsfehler des Gasts, da er sich der Virtualisierung selbst nicht bewusst ist.

Überprüfen Sie also die Bereitschaftszeit und suchen Sie, wenn diese tatsächlich hoch ist, nach einer Möglichkeit, Ihrer Maschine/Ihrem Cluster entweder mehr physische CPU hinzuzufügen oder die Nutzung zu reduzieren.

Bei der Überwachung der CPU im Gastbetrieb kann es zu Abweichungen kommen, wenn sich die Maschine im Leerlauf befindet oder wenn sie ausgelastet ist. In einem Szenario wird der Leerlaufprozess nicht vom Hypervisor geplant. Im anderen Szenario führt die hohe Auslastung vieler Maschinen dazu, dass einigen Maschinen die CPU-Leistung fehlt. Daher sollte die Überwachung auf Gastebene nicht ohne zusätzliche Überwachung auf Hypervisorebene verwendet werden.

Antwort2

Die Überwachung der CPU im Gast ist keine gute Idee, da es für jeden Gast auf jedem Hypervisor praktisch unmöglich ist, wirklich zu wissen, wie viel CPU-Zeit er benötigt. Die einzige Möglichkeit, dies herauszufinden, besteht darin, über den Hypervisor nach außen zu schauen. Ein sehr ausgelasteter Hypervisor kann also durchaus dazu führen, dass die Statistik zur CPU-Auslastung im Gast völlig daneben liegt. Vertrauen Sie diesen Zahlen einfach nicht.

verwandte Informationen