我有一台 24 核/48 GB RAM 的服务器机器,我想通过 IIS 高级设置将工作进程的处理器亲和性设置为最后 12 个核,有什么公式吗,我不想通过任务管理器设置亲和性,因为这个池经常被回收。
答案1
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
然后将其转换为十六进制:
0x1FFE000
答案2
我为每个 NUMA 节点亲和性制作了一个图表。希望有人能从中受益。