SQL Server hat 2 Sockets mit 4 Kernen pro Socket, aber nur einem NUMA-Knoten erkannt


7

Wir haben eine SQL Server 2012 SP 2 CU 8-Instanz in einem VMWare-Host. Das Betriebssystem ist Windows Server 2012 R2.

Der Windows Task-Manager gibt an, dass wir zwei Sockets und 8 virtuelle Kerne haben. Diese Nummer entspricht der tatsächlichen Hardware unter dem Gast.

Task-Manager-Socket und Kernanzahl

Im Task-Manager kann ich die Ansicht auch nicht in NUMA-Knoten ändern.

Immer noch keine NUMA-Knoten

In SQL Server ist immer noch nur ein NUMA-Knoten zu sehen SQL Server NUMA-Konfiguration

Auch dieser Ausschnitt aus Glen Berrys Diagnoseabfragen gibt mir diese Informationen

EXEC sys.xp_readerrorlog 0, 1, N'detected', N'socket';

SQL Server hat 2 Sockets mit 4 Kernen pro Socket und 4 logischen Prozessoren pro Socket erkannt, insgesamt 8 logische Prozessoren. Verwenden von 8 logischen Prozessoren basierend auf der SQL Server-Lizenzierung. Dies ist eine Informationsnachricht. Es ist keine Benutzeraktion erforderlich.

Aufgrund all dieser Informationen kann ich vermuten, dass wir nur auf einem NUMA-Knoten, aber über zwei Sockets laufen.

Meine Fragen:

  1. Ist es richtig, dass wir nur auf einem NUMA-Knoten laufen?
  2. Kann dies die Leistung beeinträchtigen, selbst wenn sich alles auf einem NUMA-Knoten befindet?
  3. Welche Komponente bestimmt genau die NUMA-Grenzen? Wenn ich beispielsweise ein Mainboard mit zwei Sockeln und zwei Intel E5-Prozessoren habe, bestimmt das Mainboard, wie viele NUMA-Knoten ich habe oder welchen Prozessor.

Ich denke, es gibt viele Fehlinformationen über NUMA-Knoten. Wenn jemand meine Frage beantworten oder auf eine nützliche Ressource verweisen kann, die dieses Konzept ausführlich erklärt, wäre er sehr dankbar.


1
Hans - Ich habe meine Antwort heute Morgen mit einigen weiteren Erkenntnissen aktualisiert. Ich denke, die beiden Artikel aus VMware-Blogs beantworten die Frage. Ich denke, Sie müssen nur noch bestätigen, dass die Hardware mindestens 8 Kerne pro Socket hat, und dann stimmen Ihre Beobachtungen mit den Informationen in den VMware-Blogs überein.
Tony Hinkle

1
@TonyHinkle Überprüft die Konfiguration am Montag. Vielen Dank für Ihre Hilfe
Hans Vader

Antworten:


4

Die folgenden zwei Artikel machen deutlich, dass VMware dem Gastbetriebssystem eine optimale virtuelle NUMA-Konfiguration präsentiert. Dementsprechend ist die Anzahl der auf der VM konfigurierten Sockets für die Anzahl der NUMA-Knoten mehr oder weniger irrelevant. Wenn die tatsächliche Hardware mindestens 8 Kerne in einem NUMA-Knoten hat, wird VMware einem Gast mit 8 CPUs unabhängig von der Socket-Anzahl der VM nur einen NUMA-Knoten präsentieren.

Beeinträchtigt corespersocket die Leistung?

Virtual Machine vCPU und vNUMA Rightsizing - Faustregeln

Das Bestimmen der NUMA-Knotengrenzen für moderne CPUs enthält zwei hilfreiche Anführungszeichen, die zeigen, dass selbst auf Hardware die Anzahl der Sockets nicht immer der Anzahl der NUMA-Knoten entspricht:

Als wir diese Analyse ursprünglich durchgeführt haben, waren die gängigen Multi-Core-Prozessoren Dual-Core- oder höchstens Quad-Core-Prozessoren. Auf diesen Chips haben die Hardwarehersteller die NUMA-Grenzen eher in Kerne als in Sockel unterteilt. Es scheint jedoch, dass diese Konfiguration für die größeren Multi-Core-Chips (6, 12 usw.) nicht identisch ist.

und

Kurz gesagt, nehmen Sie nicht an, dass Ihre NUMA-Grenzen in Kerne unterteilt sind - dies hängt sehr stark von Ihrer spezifischen CPU-Architektur ab.

Ich bin auch auf einen TechNet-Artikel gestoßen, Soft-NUMA (SQL Server) , der besagt, dass jeder Socket normalerweise durch einen NUMA-Knoten dargestellt wird, aber er erklärt nicht, wann dies nicht der Fall sein würde.

Sie können auch das BIOS der Hardware überprüfen, um sicherzustellen, dass NUMA aktiviert ist. Ich wäre überrascht, wenn es behindert wäre, aber ich habe durch meine Karriere gelernt, niemals anzunehmen, dass jemand etwas nicht völlig irrational gemacht hat.

Antworten auf Ihre Fragen:

  1. Angesichts der vorliegenden Beweise, ja, da sowohl SQL Server als auch Windows Ihnen mitteilen, dass es nur einen NUMA-Knoten gibt, und wir einige Unterlagen aus Quellen bei VMware haben, dass dem Gast die optimale vNUMA-Konfiguration präsentiert wird, bei der es sich um einen NUMA handelt Knoten, solange der Gast mit weniger als oder gleich der Anzahl der Kerne in den Hardware-Sockets konfiguriert ist und die Anzahl der dem Gast präsentierten Sockets irrelevant ist.
  2. Wenn die Systemarchitektur dem Betriebssystem mitteilt, dass es einen NUMA-Knoten gibt, gibt es einen NUMA-Knoten. Dies ist am besten, da alle CPUs denselben Speicher verwenden. Wenn es tatsächlich zwei NUMA-Knoten wären, SQL Server jedoch nur einen sieht, würde dies die Leistung für alles beeinträchtigen, was parallel ausgeführt wird.
  3. Die CPU-Architektur, die wiederum die Mainboard-Architektur bestimmt. Auf VMs wird die dem Gast präsentierte NUMA-Konfiguration vom Virtualisierungshost (VMware, Hyper-V usw.) bestimmt.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.