【问题标题】:Limiting the CPU utilization of a user in windows在 windows 中限制用户的 CPU 使用率
【发布时间】:2018-11-04 18:01:11
【问题描述】:

我想知道有没有办法通过windows中的用户名来限制cpu使用的数量?例如,有 8 个核心,我想将一个用户的全局 cpu 使用限制为 6。因此,他不能运行超过 6 个串行作业(每个使用一个核心)。

在 Linux 中,这可以通过脚本来完成。但即使使用 powershell 脚本,我也没有看到任何类似的东西。这是否意味着,它不能做到?

【问题讨论】:

    标签: windows powershell cpu-usage


    【解决方案1】:

    关键字是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
    

    【讨论】:

    • 我想你可能找错地方了。任务管理器 > 详细信息 > 右键单击​​一个进程并选择 Affinity。然后运行我的命令,然后再次检查,看看亲和力是否改变了
    • 没有。也会发生同样的情况。
    猜你喜欢
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 2016-08-19
    相关资源
    最近更新 更多