ra2 studio - Fotolia
So verhindern Sie VM-Latenzprobleme mit VMware NUMA Observer
Erfahren Sie in diesem Artikel, wie NUMA Observer von VMware Labs Sie dabei unterstützt, VMs mit überlappenden NUMA-Knoten und Speicherproblemen aufzufinden.
Die Ingenieure von VMware Flings haben das Tool NUMA Observer entwickelt, um Planungsprobleme zu erkennen und zu lösen. Das Tool durchsucht Ihr vSphere-Inventar, um virtuelle Maschinen (VMs) zu identifizieren, die sich auf demselben Host befinden und auf denselben Prozessor zugreifen. Zusätzlich sammelt es Remote-Speicherdaten und sendet Warnungen wenn CPU oder VM-Speicher überlastet sind.
NUMA Observer sucht nur nach virtuellen Maschinen, für die der Administrator die CPU-Affinität konfiguriert hat; in der Standardkonfiguration laufen VMs auf demselben Prozessor. Der CPU-Scheduler sorgt dafür, dass sie nicht gleichzeitig versuchen, auf ihn zuzugreifen.
Wenn Sie große virtuelle Workloads betreiben, ist es wichtig, die Latenz zu reduzieren und den VMs genügend Ressourcen zur Verfügung zu stellen. Virtualisierungsadministratoren Affinitäten zu NUMA-Knoten (Non-Uniform Memory Access) planen, die CPU und RAM kombinieren. Ineffizientes Scheduling, Migrationen und Failover führen jedoch meist zu Leistungsproblemen, die nur schwer zu erkennen sind. Mit NUMA Observer steht Administratoren nun ein Tool zur Verfügung, das diesen Erkennungsprozess vereinfacht.
Die Vorteile von NUMA für VMs
Es gibt mehrere CPU-Sockel auf der Hauptplatine jeder CPU – die mehrere Kerne hat – die direkt auf einen Teil des Serverspeichers zugreifen. Wenn Hardware über einen Interconnect-Bus auf andere für die CPU zugängliche Speicherbereiche zugreift, verursacht dies eine Speicherzugriffslatenz. Die folgende Abbildung zeigt ein System mit zwei Sockeln. Wenn der Host über 256 GB RAM verfügt, dann kann jede CPU direkt auf 128 GB zugreifen.
CPU-basierte Prozesse können auf den gesamten Host-Speicher zugreifen. Es ist nicht effizient, auf Speicher zuzugreifen, der einer anderen CPU gehört, da der Speicherzugriffspfad länger und langsamer ist. Dieser Speicherzugriff-Workflow kann zu Problemen führen, da VMs ebenfalls die CPU nutzen.
Verwendet eine VM mit 192 GB Speicher RAM von einer anderen CPU, stellt eine Verbindung zum Speicher der CPU her und ist somit von den Latenzen beim Remote-Speicherzugriff betroffen, leidet ihre Leistung. Virtual NUMA reduziert Latenzen, indem es die NUMA-Architektur innerhalb der VM widerspiegelt und es dem Gastbetriebssystem ermöglicht, die Speicherplanung zu optimieren.
Wenn eine VM innerhalb eines NUMA-Knotens läuft und den Speicher verwendet, auf den die CPU direkt zugreifen kann, verringert das potenzielle Leistungsprobleme.
Aktuelle Server haben mehr Kerne pro CPU und viel Speicher, so dass für die meisten VMs nur einige Kerne und 16 GB RAM ausreichen, um Planungsprobleme zu vermeiden; sie passen in einen NUMA-Knoten und müssen sich nicht über CPUs und Speicher erstrecken.
Es gibt jedoch Anwendungsfälle, die große Mengen an CPU-Kapazität und Arbeitsspeicher erfordern. Wenn einer VM Dutzende von virtuellen CPUs und Hunderte von Gigabyte Arbeitsspeicher zugewiesen sind, besteht die Möglichkeit, dass eine VM nicht in einem NUMA-Knoten laufen kann und Administratoren die Planung selbst übernehmen müssen.
Sie können den NUMA-Knoten für Ihre virtuelle Maschine festlegen. Wenn ein Cluster mit großen Knoten implementiert wird, um umfangreiche VMs unterzubringen brauchen Sie die VMs in der richtigen, optimierten Anordnung über die Hosts hinweg.
Wenn Administratoren VMs auf andere Hosts migrieren – oder wenn ein Failover aufgrund eines Ausfalls des ESXi-Servers stattfindet – ändern sie das Infrastrukturlayout. VMs mit sich überschneidenden NUMA-Knotenzuweisungen stehen dann in einem Konflikt, der erhebliche Leistungseinbußen verursachen kann.
Installieren und Ausführen von NUMA Observer
VMwares NUMA Observer steht auf der VMware-Flings-Website zum Download bereit. Um das Tool auszuführen, extrahieren Sie die Zip-Datei und starten Sie sie mit dem Java-Befehl java -jar <path-to-jar-file>.
Die folgende Abbildung zeigt das Ausführen des Programms mit dem optionalen Parameter -sslNoVerify. Das Test-Setup des vCenter-Servers verwendet ein selbstsigniertes Zertifikat, dessen Prüfung Sie mit diesem Schritt umgehen können.
Nachdem das Tool gestartet wurde, öffnen Sie einen Browser auf demselben Computer und rufen Sie in Ihrem Browse den Anmeldebildschirm auf. Authentifizierung ist erforderlich, um auf einen vCenter-Server oder einen einzelnen ESXi-Host zuzugreifen.
Auf dem Startbildschirm können Sie verschiedene Einstellungen vornehmen. In unserem Beispiel setzen wir eine Konfiguration mit 128 GB RAM ein – also eine ziemlich große VM; in Testumgebungen brauchen Sie normalerweise keine VMs mit so viel RAM.
Nach der Anmeldung können Sie auf dem Hauptbildschirm eine manuelle Prüfung auf VM-Prozessorüberschneidungen starten oder den Prozess für eine automatische Ausführung planen. Das Intervall für die Suche nach Überlappungen ist eine erweiterte Option, die Administratoren vor der Anmeldung konfigurieren; das Standardintervall beträgt eine Minute.
Das nächste Bild zeigt das Ergebnis der Suche, nämlich dass es vier VMs auf demselben Host gibt, die alle auf den CPUs 0 und 1 laufen sollen. Dies ist genau die Sorte Planungskonflikt, nach der NUMA Observer sucht.
Um dieses Problem zu beheben, verschieben Sie die VMs auf andere Hosts, damit sie jeweils auf ihrer eigenen CPU und auf ihrem eigenen Host laufen können. Mit NUMA Observer haben Administratoren jetzt ein Werkzeug, um Konflikte bei der Prozessplanung zu finden und Leistungsprobleme mit großen VMs zu vermeiden.