NUMA-Szenarien

Auf Computern mit mehreren CPUs kann NUMA-Hardware (Non-Uniform Memory Access) die Leistung deutlich steigern, indem den CPUs dedizierter Speicher zugeordnet wird. In diesem Thema werden einige NUMA-, CPU-Affinitäts- und Verbindungsaffinitätskonfigurationen vorgestellt, durch die die Leistung für bestimmte Szenarien weiter erhöht werden kann. Die folgenden Einstellungen wirken sich auf diese Konfigurationen aus:

Nützliche Szenarien

Beim Verwenden von NUMA treten häufig die folgenden Szenarien auf.

A. Keine Affinität zwischen Port und NUMA

Dies ist die Standardbedingung auf einem Computer mit NUMA-Hardware und einer einzelnen Instanz von SQL Server. Der gesamte Datenverkehr erhält Zugang über einen einzelnen Port und wird im Round-Robin-Verfahren an alle verfügbaren NUMA-Knoten verteilt. NUMA verbessert die Treffsicherheit des Speicher- und CPU-Zugriffs und erhöht die Anzahl von E/A-Threads und Threads für LAZY WRITER-Prozesse (verzögertes Schreiben). Der Gültigkeitsbereich von Verbindungen wird nach ihrem Aufbau auf diesen Knoten festgelegt. Dadurch wird ein automatischer Lastenausgleich zwischen den NUMA-Knoten ermöglicht. Die Clientanwendungen können eine Verbindung mit einem einzelnen Port aufbauen und können problemlos bereitgestellt werden.

Eine Verbindung verwendet einen beliebigen NUMA-Knoten.

B. Zuordnen eines einzelnen Ports zu mehreren Knoten, um für eine vorrangige Anwendung eine verbesserte Leistung bereitzustellen

Zuordnen eines Ports zu verschiedenen Hardware-NUMA-Knoten, um eine Hauptanwendung mit hoher Priorität zu bedienen. Zuordnen eines zweiten Ports zu einem anderen Hardware-NUMA-Knoten, um eine zweite Anwendung mit untergeordneter Priorität zu bedienen. Die Arbeitsspeicherressourcen und CPU-Ressourcen der beiden Anwendungen werden unausgeglichen verteilt, wobei die Hauptanwendung die dreifache Menge an lokalem Arbeitsspeicher und an CPU-Ressourcen wie die untergeordnete Anwendung erhält. Die untergeordnete Anwendung kann eine zweite Instanz von Database Engine (Datenbankmodul), eine weniger wichtige Funktion in derselben Instanz von Database Engine (Datenbankmodul) oder auch dieselbe Datenbank sein. Auf diese Weise kann eine Form von prioritätsbezogener Threadausführung ermöglicht werden, indem für die bevorzugte Verbindung zusätzliche Ressourcen bereitgestellt werden.

Ein Port stellt eine Verbindung mit mehreren NUMA-Knoten her.

C. Zuordnen mehrerer Ports zu mehreren Knoten

Einem NUMA-Knoten können mehrere Ports zugeordnet werden. Dies ermöglicht Ihnen die Konfiguration unterschiedlicher Berechtigungen für einzelne Ports. Sie können z. B. den durch einen Port bereitgestellten Zugriff stark einschränken, indem Sie die Berechtigungen für den entsprechenden TCP-Endpunkt steuern. In diesem Beispiel ist Port 1450 umfassend für das Intranet verfügbar. Port 1433 ist über eine Firewall offen zum Internet, doch ist der Zugriff stark eingeschränkt. Beide Ports nutzen vollständig und in gleicher Weise die Vorteile von NUMA.

Mehrere Ports stellen eine Verbindung zu allen verfügbaren NUMA-Knoten her.