IIS 10.0-Prozessoraffinitätsfeature funktioniert nicht auf NUMA-Hardware
Dieser Artikel enthält Informationen zum Beheben des Problems, bei dem Internetinformationsdienste (IIS) 10.0-Prozessoraffinität nicht auf NUMA-Hardware (Non-Uniform Memory Access) funktioniert, wenn die ideale CPU-Optimierung des IIS-Threadpools aktiviert ist.
Ursprüngliche Produktversion: Internetinformationsdienste 10.0
Ursprüngliche KB-Nummer: 4041818
Problembeschreibung
Das Prozessoraffinitätsfeature funktioniert nicht auf einsatzbereiter NUMA-Hardware in IIS 10.0.
Sie können angeben, ob ein bestimmter Arbeitsprozess, der einem Anwendungspool zugewiesen ist, einer bestimmten CPU zugewiesen werden soll. Dazu können Sie die Einstellung des smpAffinitized Anwendungspools zusammen mit den smpProcessorAffinityMask smpProcessorAffinityMask2 angegebenen Affinitätsmasken verwenden.
Auf IIS 10.0, das auf einem NUMA-Server ausgeführt wird, wird jedoch weiterhin ein Arbeitsprozess allen verfügbaren Prozessoren zugewiesen, auch wenn Sie die Prozessoraffinität aktivieren und die Affinitätsmaske so festlegen, dass nur eine Teilmenge von CPUs angegeben wird.
Hinweis
- Das Problem gilt nicht für Nicht-NUMA-Hardware.
- Sie können die Prozessoraffinität der einzelnen Arbeitsprozesse im Task-Manager überprüfen. Gehen Sie dazu wie folgt vor:
- Wählen Sie Details aus.
- Wählen Sie w3wp.exe aus.
- Affinität festlegen.
Ursache
Das Problem tritt auf, weil in IIS 10.0 ein neues Feature, die ideale CPU-Optimierung des IIS-Threadpools für NUMA-Hardware, aktiviert ist.
Dieses Feature ist standardmäßig aktiviert. Das Feature optimiert die IIS-Leistung, indem Lasten gleichmäßig auf alle CPUs aller NUMA-Knoten verteilt werden. Diese Einstellung hat jedoch einen Konflikt mit der angegebenen Prozessoraffinität.
Problemumgehung
Um dieses Problem zu umgehen, deaktivieren Sie die ideale CPU-Optimierung des IIS-Threadpools auf einem NUMA-Server, wenn Sie die Prozessoraffinität angeben möchten. Aktualisieren Sie dazu den Wert der folgenden Registrierung von 1 auf 0:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\InetInfo\Parameters\ThreadPoolUseIdealCpu
Lösung
Um dieses Problem zu beheben, aktualisieren Sie IiS auf eine höhere Version, z. B. IIS 10.0 RS3, wenn es verfügbar ist.