Serverkonfiguration: Affinität-E/A-Maske
Gilt für: SQL Server
Zum Ausführen von Multitasking verschiebt Windows gelegentlich Prozessthreads zwischen verschiedenen Prozessoren. Obwohl dieses Vorgehen hinsichtlich des Betriebssystems effizient ist, kann es die Leistung von SQL Server bei starker Systemauslastung beeinträchtigen, da jeder Prozessorcache wiederholt mit Daten beladen wird. Unter diesen Bedingungen kann das Zuweisen bestimmter Threads zu bestimmten Prozessoren die Leistung verbessern, da das erneute Laden von Prozessoren vermieden wird. Eine solche Zuordnung zwischen einem Thread und einem Prozessor wird als Prozessoraffinität bezeichnet.
SQL Server unterstützt die Prozessoraffinität mit zwei Optionen für Affinitätsmasken: „affinity mask
“ (auch CPU-Affinitätsmaske genannt) und „affinity I/O mask
“. Weitere Informationen zur Option affinity mask
finden Sie unter Konfigurieren Sie die Serverkonfigurationsoption Affinitätsmaske. Die Unterstützung von CPU- und E/A-Affinität für Server mit 33 bis 64 Prozessoren erfordert, dass Sie auch die Serverkonfigurationsoptionen affinity64 mask und affinity64 I/O mask verwenden.
Hinweis
Affinitätsunterstützung für Server mit 33 bis 64 Prozessoren steht nur auf 64-Bit-Betriebssystemen zur Verfügung.
Die Option affinity I/O mask
verbindet SQL Server mit einer angegebenen Teilmenge von CPUs. In High-End-OLTP-Umgebungen (Online Transactional Processing, Onlinetransaktionsverarbeitung) für SQL Server kann diese Erweiterung die Leistung von SQL Server -Threads, die E/A verursachen, verbessern. Diese Verbesserung unterstützt keine Hardwareaffinität für einzelne Datenträger oder Datenträgercontroller.
Der Wert für affinity I/O mask
gibt an, welche CPUs eines Multiprozessorcomputers für die Verarbeitung von SQL Server-Datenträger-E/A-Vorgängen verwendet werden sollen. Die Maske ist eine Bitmap, in der das erste Bit von rechts die CPU mit der niedrigsten Nummer angibt, CPU(0), das zweite Bit von rechts die CPU mit der nächsthöheren Nummer, CPU(1) usw. Um mehr als 32 Prozessoren zu konfigurieren, legen Sie sowohl die affinity I/O mask
als auch die affinity64 I/O mask
fest.
Für affinity I/O mask
gelten folgende Werte:
Byte im Maskenformat | Anzahl von CPUs |
---|---|
1 Byte | Bis zu 8 CPUs |
2-Byte | Bis zu 16 CPUs |
3-Byte | Bis zu 24 CPUs |
4 Byte | Bis zu 32 CPUs |
Für einen Computer mit mehr als 32 CPUs konfigurieren Sie eine aus vier Bytes affinity I/O mask
bestehende affinity mask für die ersten 32 CPUs und eine aus bis zu 4 Bytes bestehende affinity64 I/O mask
für die restlichen CPUs.
Ein 1
-Bit im Affinitäts-E/A-Muster gibt an, dass die entsprechende CPU berechtigt ist, SQL Server-Datenträger-E/A-Vorgänge auszuführen. Ein Bit 0
gibt an, dass für die entsprechende CPU keine SQL Server-Platten-E/A-Vorgänge geplant werden sollen. Sind alle Bits auf 0
festgelegt oder affinity I/O mask
ist nicht angegeben, werden SQL Server-Datenträger-E/A-Vorgänge für eine beliebige CPU geplant, die für die Verarbeitung von SQL Server-Threads geeignet ist.
Da das Festlegen der SQL Server-Option affinity I/O mask
ein spezialisierter Vorgang ist, verwenden Sie sie nur bei Bedarf. In den meisten Fällen kann eine optimale Leistung durch die Affinität von standardmäßigem Microsoft Windows erzielt werden.
Wenn Sie die Option „affinity I/O mask
“ angeben, müssen Sie sie mit der Konfigurationsoption „affinity mask
“ verwenden. Aktivieren Sie jedoch nicht dieselbe CPU sowohl im Schalter affinity I/O mask
als auch in der Option affinity mask
. Die Bits, die den einzelnen CPUs entsprechen, sollten sich jeweils in einem der folgenden drei Zustände befinden:
0
sowohl in deraffinity I/O mask
-Option als auch in deraffinity mask
-Option.1
in deraffinity I/O mask
-Option und0
in deraffinity mask
-Option.0
in deraffinity I/O mask
-Option und1
in deraffinity mask
-Option.
Bei der Option affinity I/O mask
handelt es sich um eine erweiterte Option. Wenn Sie die Einstellung mithilfe der gespeicherten Systemprozedur sp_configure
ändern, können Sie „affinity I/O mask
“ nur ändern, wenn show advanced options
auf 1
festgelegt ist. In SQL Server ist für das erneute Konfigurieren der Option affinity I/O mask
ein Neustart der SQL Server-Instanz erforderlich.
Achtung
Konfigurieren Sie nie gleichzeitig die CPU-Affinität im Windows-Betriebssystem und die affinity mask
in SQL Server. Diese Einstellungen zielen auf dasselbe Ergebnis. Wenn die Konfigurationen inkonsistent sind, kann dies zu unvorhersehbaren Ergebnissen führen. Die CPU-Affinität in SQL Server sollte am besten mit der gespeicherten Systemprozedu „sp_configure
“ in SQL Server konfiguriert werden.