この記事では、IIS スレッド プールの理想的な CPU 最適化が有効になっている場合に、インターネット インフォメーション サービス (IIS) 10.0 プロセッサ アフィニティが非均一メモリ アクセス (NUMA) ハードウェアで機能しない問題の解決について説明します。
元の製品バージョン: インターネット インフォメーション サービス 10.0
元の KB 番号: 4041818
現象
プロセッサ アフィニティ機能は、IIS 10.0 のすぐに使用できない NUMA ハードウェアでは機能しません。
アプリケーション プールに割り当てられている特定のワーカー プロセスを特定の CPU に割り当てるかどうかを指定できます。 これを行うには、smpAffinitized
アプリケーション プールの設定を、指定されたアフィニティ マスクと共にsmpProcessorAffinityMask
smpProcessorAffinityMask2
使用できます。
ただし、NUMA サーバーで実行されている IIS 10.0 では、プロセッサ アフィニティを有効にし、アフィニティ マスクを CPU のサブセットのみを示すように設定した場合でも、ワーカー プロセスは使用可能なすべてのプロセッサに割り当てられます。
Note
- この問題は、NUMA 以外のハードウェアには適用されません。
- タスク マネージャーから、各ワーカー プロセスのプロセッサ アフィニティを確認できます。 これを行うには、次の手順に従います。
- [詳細] を選択します。
- [ w3wp.exe] を選択します。
- affinityを設定します。
原因
この問題は、IIS 10.0 で新しい機能である IIS スレッド プールの NUMA ハードウェアの理想的な CPU 最適化が有効になっているために発生します。
この機能は、既定で有効になっています。 この機能は、すべての NUMA ノードのすべての CPU に負荷を均等に分散することで、IIS のパフォーマンスを最適化します。 ただし、この設定は、指定されたプロセッサ アフィニティと競合します。
回避策
この問題を回避するには、プロセッサ アフィニティ 指定する場合は NUMA サーバーで
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\InetInfo\Parameters\ThreadPoolUseIdealCpu
解決方法
この問題を解決するには、IIS を IIS 10.0 RS3 などの新しいバージョン (使用可能な場合) にアップグレードします。