问题:我有一个具有振荡负载的单核进程(sc2 路径优化器)。
我如何编写一个脚本将此过程移动到某个核心并阻止其他过程进入该核心?
我最初的想法是使用命令行脚本来监视进程并不断地(每秒一次左右)告诉它们远离核心 X,除非它们被称为 sc2-path-optimizer。然后 sc2-path-optimizer 被强制进入核心 X,而不是其他地方。
上述方法可行吗?我有 4 个核心,因此在运行此核心 X 专用进程时,我有额外的计算能力来做其他事情。
这是其他地方建议的方法,但处理器亲和性更改(或类似)的实际命令和线程循环的命令是什么?需要稍微推动一下才能找到正确的方向。
答案1
部分答案:
获取和设置亲和力:
PowerShell "Get-Process app | Select-Object ProcessorAffinity"
PowerShell "$Process = Get-Process app; $Process.ProcessorAffinity=255"
https://stackoverflow.com/questions/19187241/change-affinity-of-process-with-windows-script
获取所有进程:
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-powershell-1.0/ee176855(v=technet.10)