Warum beeinflusst die Anzahl der NUMA-Knoten die Prozessorgruppierung?

Warum beeinflusst die Anzahl der NUMA-Knoten die Prozessorgruppierung?

Auf einem HPE DL380 G10 Server mit 2 Xeon(R) Gold 6246R (32 phys. Cores, 64 log. mit HT), im BIOS mit dieser Einstellung:

Systemkonfiguration > BIOS/Plattformkonfiguration (RBSU) > Leistungsoptionen > Erweiterte Leistungsoptimierungsoptionen > NUMA-Gruppengrößenoptimierung

Wir können zwischen diesen 2 Optionen wählen:

  1. Gruppiert– Optimiert Gruppen entlang der NUMA-Grenzen und sorgt so für eine bessere Leistung.
  2. Wohnung– Ermöglicht Anwendungen, die nicht für die Nutzung von Prozessoren mehrerer Gruppen optimiert sind, die Verwendung logischerer Prozessoren.

Die Option „Clustered“ zwingt Windows dazu, nur EINEN NUMA-Knoten, ABER 2 Prozessorgruppen mit jeweils 32 Kernen zu melden. Die Option „Flat“ hingegen zeigt 2 NUMA-Knoten und nur 1 Prozessorgruppe mit 64 logischen Kernen.

Natürlich weiß ich bereits viel über NUMA und Prozessorgruppen, daher bitte ich wirklich nicht um Empfehlungen zu den besten Einstellungen für meinen Anwendungsfall oder so. Stattdessen lautet die Frage: Warum wäre es für Windows sinnvoll, sich für 2 Prozessorgruppen zu entscheiden, wenn nur ein NUMA-Knoten vorhanden ist und umgekehrt? Außerdem habe ich nie eine Dokumentation gefunden, in der steht, dass Windows (Server 2019) 64 Kerne in 2 Gruppen aufteilt. Ist das überhaupt das erwartete Verhalten?

Antwort1

Der von Ihnen gefundene Artikel stammt aus dem Jahr 2008. Damals war Windows mit NUMA-Rechnern mit mehr als 64 Prozessoren konfrontiert, wobei die Implementierung von Prozessorgruppen auf 64 beschränkt war. Die Lösung bestand damals darin, automatisch mehrere solcher Gruppen mit jeweils maximal 64 Prozessoren zu erstellen.

Eine flexiblere Lösung wurde Ende 2014 eingeführt. Die früheste Referenz, die ich gefunden habe, ist eine HP Hinweis bezüglich HP Gen9 Server und datiert vom 24.04.2015:

In der Revision 1.30 (24.12.2014) und späteren Versionen der System-ROMs für Gen9-Server wird einneues ROM-basiertes Setup-Dienstprogramm „NUMA Group Size Optimization“,wurde hinzugefügt, mit dem der Benutzer das Verhalten der an das Betriebssystem gemeldeten Prozessoren ändern kann. Mit dieser Option kann das Betriebssystem alle logischen Prozessoren in einer einzigen Gruppe zusammenfassen, wenn 64 oder weniger logische Prozessoren vorhanden sind („Flat“).

Die Option „Clustered“ erstellt eine Prozessorgruppe für die Kerne jeder CPU. Die Option „Flat“ ist dafür gedacht, Anwendungen die Nutzung aller Computerkerne zu ermöglichen, da eine Anwendung in Windows standardmäßig auf eine einzige Gruppe beschränkt ist und daher nur diese eine Gruppe sieht und nutzt.

In Bezug auf Ihre Fragen:

Warum wäre es für Windows sinnvoll, sich für zwei Prozessorgruppen zu entscheiden, wenn nur ein NUMA-Knoten vorhanden ist und umgekehrt?

Dies wird durch die Option „Clustered“ vorgegeben, die aus Leistungsgründen sinnvoll ist, wenn eine Anwendung und alle ihre Prozesse und Threads im nahegelegenen Speicher ausgeführt werden.

Benötigt eine Anwendung in Ihrem Fall mehr als 32 Kerne, sollten Sie die Option „Flat“ verwenden, um alle Kerne verfügbar zu machen.

Ich habe nie eine Dokumentation darüber gefunden, dass Windows (Server 2019) 64 Kerne in zwei Gruppen aufteilt. Ist dieses Verhalten überhaupt erwartungsgemäß?

Ja, das ist das erwartete Verhalten. Es ist nicht sehr gut dokumentiert, aber es gibt Referenzen für dieses Verhalten, zum Beispiel Exchange-Leistung:HP NUMA BIOS-Einstellungen.

verwandte Informationen