type
status
date
slug
summary
tags
category
icon
password
起因
系统里跑了一些猿手搓的程序在资源占用上不知道什么时候能处理好,出现CPU资源占用100%导致整个系统无响应,为了避免重蹈覆辙于是背锅侠也手搓了一个限制脚本。
单个进程
值说明
在处理器亲和性中,每个位代表一个逻辑处理器的索引。因此,0x7表示使用了第1、第2和第3个逻辑处理器(从右往左数,从0开始索引)。除了0x7之外,常见的处理器亲和性值还包括:
- 0x1(对应于二进制的 00000000000000001):使用第1个逻辑处理器
- 0x3(对应于二进制的 0000000000000011):使用第1和第2个逻辑处理器
- 0xF:使用所有逻辑处理器
不同的处理器亲和性值可以用来控制进程在多核处理器上的运行方式。
多个进程
脚本通过
process_list.txt
列表文件来对进程设置处理器相关性。但是列表用上面的命令貌似不行,得换个方式。IIS 站点程序
如果是站点,可以直接在
应用程序池
→高级设置
中设置处理器关联(需将启用处理器关联设置为True)处理器关联掩码
smpProcessorAffinityMask
:可选 uint 属性。 指定多处理器计算机的十六进制处理器掩码,用于指示应用程序池中的工作进程应绑定到哪个 CPU。 处理器关联掩码(64位选项)
smpProcessorAffinityMask2
:可选 uint 属性。 指定 64 位多处理器计算机的高位 DWORD 十六进制处理器掩码,用于指示应用程序池中的工作进程应绑定到哪个 CPU。已启用处理器关联
smpAffinitized
:可选布尔属性。 指定分配给应用程序池的特定工作进程是否也应分配给给定的 CPU。 该属性与 smpProcessorAffinityMask 和 smpProcessorAffinityMask2 属性一起使用。说明
默认值为
4294967295
。在属性生效之前,必须将应用程序池的 smpAffinitized 属性设置为 true。
注意:在 64 位计算机上,smpProcessorAffinityMask 属性包含处理器掩码的低位 DWORD,smpProcessorAffinityMask2 属性包含处理器掩码的高位 DWORD。 在 32 位计算机上,smpProcessorAffinityMask2 属性无效。
注意:请勿将此属性设置为 0。 这样做会禁用对称多处理 (SMP) 关联性并产生错误条件。 这意味着在一个 CPU 上运行的进程在其整个生命周期中不会一直与该 CPU 关联。
- Po主:瓶幾¬_¬
- 链接:https://blog.v2cu.com/CPU-Affinity
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章