You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell为大核心数(64/112)程序设置全CPU亲和性

用PowerShell将进程绑定到所有CPU核心的解决方案

问题原因

你原来的代码无效是因为ProcessorAffinity属性要求的是位掩码整数——每个二进制位对应一个逻辑CPU核心,而不是字符串"All"。直接赋值字符串会导致类型不匹配,无法生效。

解决方案

下面的PowerShell代码可以自动适配64核、112核等不同核心数的服务器,将指定进程绑定到所有逻辑核心:

# 替换为你的目标进程ID
$targetProcessId = 6048

# 获取目标进程
try {
    $process = Get-Process -Id $targetProcessId -ErrorAction Stop
}
catch {
    Write-Error "无法找到ID为$targetProcessId的进程:$_"
    exit 1
}

# 获取系统总逻辑核心数
$totalLogicalCores = (Get-CimInstance Win32_Processor | Measure-Object NumberOfLogicalProcessors -Sum).Sum

# 计算绑定所有核心的位掩码(逐位设置为1)
$affinityMask = 0
for ($coreIdx = 0; $coreIdx -lt $totalLogicalCores; $coreIdx++) {
    $affinityMask = $affinityMask -bor (1 -shl $coreIdx)
}

# 设置CPU亲和性
try {
    $process.ProcessorAffinity = $affinityMask
    Write-Host "已成功将进程ID $targetProcessId 绑定到所有$totalLogicalCores个逻辑核心"
}
catch {
    Write-Error "设置亲和性失败:$_,请检查是否以管理员权限运行PowerShell"
}

关键说明

  • 位掩码计算:通过循环将每个核心对应的二进制位设为1,确保不管核心数是64还是112,都能生成正确的掩码值。
  • 权限要求:必须以管理员权限运行PowerShell,否则会因权限不足无法修改进程的CPU亲和性。
  • 兼容性:适配32位/64位进程,以及不同核心数的服务器环境。

内容的提问来源于stack exchange,提问作者Inferno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:20:31