处理器亲和掩码 (IIS) 公式

Ali*_*san 3 central-processing-unit iis-7.5 windows-server-2008-r2

我有一台 24 核/ 48 GB RAM 服务器机器,我想通过 IIS Advance 设置将工作进程的处理器关联性设置为持续 12 个内核,是否有任何公式,我不想通过任务管理器设置关联性作为这个池经常被回收。

Rya*_*ies 5

http://www.iis.net/configreference/system.applicationhost/applicationpools/add/cpu

smpProcessorAffinityMask
可选的 uint 属性。

指定多处理器计算机的十六进制处理器掩码,指示应用程序池中的工作进程应绑定到哪个 CPU。在此属性生效之前,必须将应用程序池的 smpAffinitized 属性设置为 true。

注意:在 64 位计算机上,smpProcessorAffinityMask 属性包含处理器掩码的低位 DWORD,而 smpProcessorAffinityMask2 属性包含处理器掩码的高位 DWORD。在 32 位计算机上,smpProcessorAffinityMask2 属性无效。

如果将该值设置为 1(对应于二进制的 00000000000000001),则应用程序池中的工作进程仅在第一个处理器上运行。如果将该值设置为 2(对应于二进制的 0000000000000010),则工作进程仅在第二个处理器上运行。如果将该值设置为 3(对应于二进制的 0000000000000011),则工作进程将在第一和第二个处理器上运行。

注意:不要将此属性设置为 0。这样做会禁用对称多处理 (SMP) 关联并创建错误条件。这意味着在一个 CPU 上运行的进程在其整个生命周期内不会一直隶属于该 CPU。

默认值为 4294967295。

首先,将 smpAffinitized 设置为 true。

处理器标识从右到左。从处理器 0 开始。要设置与最后 12 个处理器的关联:

0000 0000 1111 1111 1111 0000 0000 0000
Run Code Online (Sandbox Code Playgroud)

然后将其转换为十六进制:

0x1FFE000
Run Code Online (Sandbox Code Playgroud)

  • 当我查看 IIS 中的 `snmpProcessorAffinityMask` 值(“应用程序池”-> 高级设置)时,它们似乎总是十进制而不是十六进制。例如 '4294967295' 然而属性描述说它是一个十六进制掩码。为什么是这样? (2认同)