https://learn.microsoft.com/zh-CN/troubleshoot/developer/webapps/iis/iisadmin-service-inetinfo/processor-affinity-not-work

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

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

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

症状

处理器相关性功能不适用于 IIS 10.0 中的现新 NUMA 硬件。

可以指定是否应将分配给应用程序池的特定辅助角色进程分配给特定 CPU。 为此,可以将应用程序池设置与指定的smpProcessorAffinityMasksmpProcessorAffinityMask2相关性掩码一起使用smpAffinitized

但是,在 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。

参考