Automatische weiche NUMA führt zu einer ungeraden Anzahl von Kernen


7

Ich habe sp_blitz auf einem unserer SQL Server 2016-Produktionsserver ausgeführt, und eines der Ergebnisse war, dass es CPUs mit einer ungeraden Anzahl von Kernen gab. Die detaillierte Meldung zeigte an, dass dies eine wirklich schlechte NUMA-Konfiguration ist.

SQL Server 2016 verwendet automatisches Soft-NUMA, wenn physische Prozessoren mit mehr als 8 Kernen erkannt werden. Unser spezieller Server verfügt über zwei Sockel mit 10 CPUs pro Sockel.

Die Startmeldungen im SQL Server-Fehlerprotokoll geben Folgendes an:

Automatisches Soft-NUMA wurde aktiviert, da SQL Server Hardware-NUMA-Knoten mit mehr als 8 physischen Kernen erkannt hat.

Als Ergebnis erstellte SQL Server vier logische NUMA-Knoten mit jeweils 5 Kernen.

Ist das ein Leistungsproblem?

Wir verwenden MAXDOP = 4.

Ist Parallelität hier ein Thema?

Antworten:


3

Wir können Ihre Frage "Gibt es ein Leistungsproblem?" Nicht beantworten. Nur Sie können das beantworten. Erhalten Sie eine akzeptable Leistung in der Produktion? Ich kann Ihnen sagen, dass mir ein Produktionssystem bekannt ist, das mit vier Sockeln mit jeweils 10 CPUs und aktiviertem Auto-Soft-NUMA eine akzeptable Leistung erzielt. Es ist also nicht unmöglich, mit Soft-NUMA-Knoten mit einer ungeraden Leistung einen akzeptablen Leistungsbedarf zu erzielen Anzahl der Planer.

Wenn Sie den Verdacht haben, dass durch die Änderung Ihrer NUMA-Konfiguration Leistungssteigerungen erzielt werden, sollten Sie dies testen. Soweit ich weiß, hängt wirklich alles von Ihrer Arbeitsbelastung ab. Sie haben die drei Möglichkeiten, Auto-Soft-NUMA beizubehalten, Auto-Soft-NUMA zu deaktivieren oder eine manuelle Konfiguration mit de-affinitierenden CPUs oder manuellem Soft-NUMA durch Ändern der Registrierung zu versuchen. Ich bin mir nicht sicher, ob ich alle Details unten habe, aber Sie finden möglicherweise Informationen darüber, welche Änderungen in SQL Server beim Ändern Ihrer Konfiguration hilfreich sind.

Die Anzahl der faulen Schreiber wird durch die Anzahl der physischen NUMA-Knoten bestimmt, sodass Soft-NUMA dies nicht ändert. In SQL Server 2016 können bis zu vier Transaktionsprotokollschreiber vorhanden sein, einer pro NUMA-Knoten in SQL Server. Diese Transaktionsprotokollschreiber werden nicht gleichmäßig auf Ihre NUMA-Knoten verteilt: Sie werden nach Bedarf den CPUs 1, 2, 3 und 4 zugewiesen. Sie haben einen Ressourcenmonitor pro logischem NUMA-Knoten. Ich glaube, dass Sie auch 1 E / A-Abschluss-Thread pro logischem NUMA-Knoten haben werden, aber ich habe mir das nicht speziell angesehen und weiß nicht, ob es ein Limit gibt.

Vielleicht hilft es, ein paar Beispielkonfigurationen durchzugehen. Angenommen, Sie deaktivieren Auto-Soft-NUMA. Für diese Konfiguration stehen 2 logische NUMA-Knoten mit 10 Schedulern in SQL Server, 2 Ressourcenmonitore, 2 Lazy Writer, 2 E / A-Abschluss-Threads und 2 Transaktionsprotokoll-Writer zur Verfügung. Sie würden den sp_blitzBefund nicht mehr sehen .

Angenommen, Sie aktivieren Auto-Soft-NUMA. Für diese Konfiguration stehen 4 logische NUMA-Knoten mit 5 Schedulern in SQL Server, 4 Ressourcenmonitore, 2 Lazy Writer, 4 E / A-Abschluss-Threads und 4 Transaktionsprotokoll-Writer zur Verfügung.

Mit manuellem Soft-NUMA können Sie beispielsweise 3 Soft-NUMA-Knoten mit 2 Schedulern, 4 Schedulern und 4 Schedulern pro Socket erstellen. Das würde auch den sp_blitzBefund vermeiden . Sie können auch 2 CPUs pro Socket für SQL Server nicht sichtbar machen. In diesem Fall hätten Sie 8 Scheduler pro Socket und Auto-Soft-NUMA würde nicht angewendet. Beides klingt für mich nach ziemlich seltsamen Konfigurationen.

Welche dieser Konfigurationen eignet sich am besten für Ihre Arbeitslast? Würde Ihre Arbeitslast von 4 Transaktionsprotokollschreibern anstelle von 2 profitieren? Würde Ihre Arbeitsbelastung durch 4 Ressourcenmonitore anstelle von 2 beeinträchtigt? Ich habe keine Ahnung. Alles, was Sie tun können, ist ein Benchmarking. Ich konnte keine Informationen von Microsoft finden, wann Auto-Soft-NUMA die Leistung beeinträchtigen könnte. Ihr Standpunkt scheint zu sein, dass es im Allgemeinen die Leistung und Skalierbarkeit verbessert und eingeschaltet lässt, es sei denn, Sie haben ein Leistungsproblem. IMO, das MAXDOP 4-Abfragen an 4 Soft-NUMA-Knoten von 5 Schedulern sendet, klingt für mich überhaupt nicht schlecht.

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.