IIS 10.0 处理器相关性功能在 NUMA 硬件上不起作用

本文提供有关解决 Internet Information Services (IIS) 10.0 处理器相关性不适用于非统一内存访问 (NUMA) 硬件(如果启用了 IIS 线程池理想 CPU 优化)的问题。

原始产品版本: Internet Information Services 10.0
原始 KB 编号: 4041818

症状

处理器关联功能不适用于 IIS 10.0 中的现装 NUMA 硬件。

可以指定是否应将分配给应用程序池的特定工作进程分配给特定的 CPU。 为此,可以将 smpAffinitized 应用程序池设置与 smpProcessorAffinityMasksmpProcessorAffinityMask2 指定的关联掩码一起使用。

但是,在 NUMA 服务器上运行的 IIS 10.0 上,即使启用处理器相关性并将关联掩码设置为仅指示 CPU 子集,工作进程仍分配给所有可用处理器。

注意

  • 此问题不适用于非 NUMA 硬件。
  • 可以从任务管理器检查每个工作进程的处理器相关性。 为此,请按照下列步骤操作:
    1. 选择 “详细信息”。
    2. 选择 w3wp.exe
    3. 设置 相关性

原因

出现此问题的原因是 IIS 10.0 中启用了一项新功能“IIS 线程池理想的 NUMA 硬件 CPU 优化”。

默认情况下,此功能处于启用状态。 此功能通过跨所有 NUMA 节点的所有 CPU 均匀分配负载来优化 IIS 性能。 但是,此设置与指定的处理器相关性冲突。

解决方法

若要解决此问题,如果要指定处理器相关性,请在 NUMA 服务器上禁用 IIS 线程池理想 CPU 优化 。 为此,请将以下注册表的值从 1 更新为 0

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\InetInfo\Parameters\ThreadPoolUseIdealCpu

解决方案

若要解决此问题,请在 IIS 可用时将 IIS 升级到更高版本,例如 IIS 10.0 RS3。

参考