在多核、超线程 CPU 的时代,“处理器”现在是一个模棱两可的术语。处理器是指线程(来自超线程)、内核还是插槽(物理 CPU)。
Windows 将逻辑处理器 (LP) 识别为基本计算平台 - 为内核中的每个超线程提供一个 LP,然后乘以每个内核,最后乘以插槽数。
在 Windows 中减少 LP 计数的最简单方法是使用 /NUMPROC 选项。在此示例中,itc 创建的最大处理器数为 8。
- 备份 bcdedit /export c:\Backup\bcd.bak
- 当前条目列表 bcdedit /v
- 现有配置的副本 bcdedit /copy {current} /d "Windows 2008 R2 with NumProc" 当前是一个“众所周知的”标识符。这也会返回创建的 Id。这样就可以直接使用了
- 条目列表 bcdedit /v
- 向新条目添加参数 设置最大处理器数
bcdedit /set {new_ID} NUMPROC 8
- 更改默认条目 bcdedit /default {new_ID}
但是这种策略的危险在于,例如在启用了超线程的 4 核系统上,然后只使用一个处理器(插槽)。由于前 8 个 LP (0..7) 将是第一个处理器上的超线程内核。因此,您实际上并不是在模拟一个 8 路系统 - 而是一个启用了超线程的 1 路 - 4 核系统。
如果这不适合您的模型,其他选项是
- 在 BIOS 中禁用超线程 - 这会减少每个内核的 LP 数量,从而有助于将负载分配到内核和插槽上。
- 系统 BIOS 是否支持减少每个处理器的核心计数器?如果是这样,这将有助于通过套接字分配负载。
- 在虚拟环境中构建系统并从该角度限制物理资源。
如果您在 Windows 下处理超过 64 个逻辑处理器,那么这将引入处理器组并添加另一层选项。