Ограничение использования процессора пользователем в Windows - PullRequest
0 голосов
/ 04 ноября 2018

Я хочу знать, есть ли какой-нибудь способ ограничить количество используемых процессором по имени пользователя в windows? Например, есть 8 ядер, и я хочу ограничить глобальное использование процессора пользователем до 6. Таким образом, он не может запустить более 6 последовательных заданий (каждое использует одно ядро).

В Linux это можно сделать с помощью сценариев. Но я не видел ничего подобного даже в сценариях PowerShell. Означает ли это, что это не может быть сделано?

1 Ответ

0 голосов
/ 04 ноября 2018

Ключевым словом для этого является 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
...