【发布时间】:2018-11-04 18:01:11
【问题描述】:
我想知道有没有办法通过windows中的用户名来限制cpu使用的数量?例如,有 8 个核心,我想将一个用户的全局 cpu 使用限制为 6。因此,他不能运行超过 6 个串行作业(每个使用一个核心)。
在 Linux 中,这可以通过脚本来完成。但即使使用 powershell 脚本,我也没有看到任何类似的东西。这是否意味着,它不能做到?
【问题讨论】:
标签: windows powershell cpu-usage
我想知道有没有办法通过windows中的用户名来限制cpu使用的数量?例如,有 8 个核心,我想将一个用户的全局 cpu 使用限制为 6。因此,他不能运行超过 6 个串行作业(每个使用一个核心)。
在 Linux 中,这可以通过脚本来完成。但即使使用 powershell 脚本,我也没有看到任何类似的东西。这是否意味着,它不能做到?
【问题讨论】:
标签: windows powershell cpu-usage
关键字是Affinity。 亲和力从 0 开始,即第一个核心。 亲和力是位图
10000000 = first core
01000000 = second core
11000000 = first and second core
00100000 = third core
10100000 = first and third core
11100000 = first second and third core
function Set-Affinity([string]$Username,[int[]]$core){
[int]$affinty = 0
$core | %{ $affinty += [math]::pow(2,$_)}
get-process -IncludeUserName | ?{$_.UserName -eq $Username} | %{
$_.ProcessorAffinity = $affinty
}
}
Set-Affinity -username "TESTDOMAIN\TESTUSER" -core 0,1,2,3
【讨论】: