ESXi verwendet einen ausgereiften NUMA-Scheduler, um die Prozessorlast und die Vielfachbelegung des Arbeitsspeichers bzw. den ProzessorLastausgleich dynamisch auszugleichen.
- Jede von NUMA-Scheduler verwaltete virtuelle Maschine wird ein Stammknoten zugewiesen. Ein Stammknoten ist einer der NUMA-Knoten des Systems, der Prozessoren und lokalen Arbeitsspeicher enthält, wie in der Tabelle für die Zuteilung von Systemressourcen (SRAT) angegeben.
- Bei der Zuteilung von Arbeitsspeicher zu einer virtuellen Maschine weist der ESXi-Host diesen vorzugsweise aus dem Stammknoten zu. Die virtuellen CPUs der virtuellen Maschine werden gezwungenermaßen auf dem Startknoten ausgeführt, um die Speicherlokalität zu maximieren.
- Der NUMA-Scheduler kann den Stammknoten einer virtuellen Maschine dynamisch ändern, um auf Änderungen in der Systemlast zu reagieren. Der Scheduler kann eine virtuelle Maschine auch auf einen neuen Stammknoten migrieren, um ein Ungleichgewicht der Prozessorlast zu verringern. Weil hierzu möglicherweise auf einen größeren Anteil an Remotearbeitsspeicher für die virtuelle Maschine zugegriffen wird, kann der Scheduler den Arbeitsspeicher der virtuellen Maschine dynamisch auf ihren neuen Stammknoten migrieren, um so die Arbeitsspeicherbelegung zu verbessern. Darüber hinaus lassen sich virtuelle Maschinen mit dem NUMA-Scheduler zwischen den einzelnen Knoten auslagern, wenn dadurch die Arbeitsspeicherbelegung insgesamt verbessert wird.
Einige virtuelle Maschinen werden nicht durch den NUMA-Scheduler von ESXi verwaltet. Wenn Sie beispielsweise die Prozessor- oder Arbeitsspeicheraffinität für eine virtuelle Maschine manuell festlegen, kann diese virtuelle Maschine möglicherweise nicht durch den NUMA-Scheduler verwaltet werden. Virtuelle Maschinen, die nicht über den NUMA-Scheduler verwaltet werden, können dennoch ordnungsgemäß ausgeführt werden. Sie profitieren jedoch nicht von ESXi-NUMA-Optimierungen.
Durch die NUMA-Planung und Platzierungsrichtlinien für Arbeitsspeicher innerhalb von ESXi können alle virtuellen Maschinen transparent verwaltet werden, sodass sich der Administrator nicht mit dem komplexen Verfahren zum expliziten Ausgleichen virtueller Maschinen zwischen den Knoten auseinandersetzen muss.
Die Optimierungen funktionieren nahtlos und unabhängig vom Gastbetriebssystemtyp. ESXi bietet selbst für virtuelle Maschinen NUMA-Unterstützung, die keine NUMA-Hardware unterstützen (z. B. Windows NT 4.0). Daher können Sie auch die Vorteile neuer Hardware mit Legacy-Betriebssystemen nutzen.
Eine virtuelle Maschine, deren Anzahl an virtuellen Prozessoren höher ist als die Anzahl an auf einem einzelnen Hardwareknoten verfügbaren physischen Prozessorkernen, kann automatisch verwaltet werden. Der NUMA-Scheduler kommt einer solchen virtuellen Maschine entgegen, indem er diese über NUMA-Knoten erstreckt. D. h., sie wird in mehrere NUMA-Clients unterteilt, von denen jeder einem Knoten zugewiesen und anschließend vom Scheduler als ein normaler, sich nicht über mehrere Knoten erstreckender Client verwaltet wird. Bei bestimmten arbeitsspeicherintensiven Arbeitslasten mit hoher Lokalität kann dies die Leistung erhöhen. Weitere Informationen zur Konfiguration des Verhaltens dieser Funktion finden Sie unter Erweiterte Attribute für virtuelle Maschinen.
ESXi 5.0 und höher bietet jetzt Unterstützung für die Offenlegung der virtuellen NUMA-Topologie für Gastbetriebssysteme. Weitere Informationen zur virtuellen NUMA-Steuerung finden Sie unter Verwenden von virtueller NUMA.