PowerShell远程处理带来的CPU压力

时间:2016-05-05 02:59:51

标签: powershell powershell-remoting

我需要在大约100台Windows 2012 R2服务器上产生一些负载。我的想法是使用PowerShell远程处理开始我的脚本生成CPU负载。我也试图通过检查当前负载来控制负载,如果超过X%,则不会产生新的工作。它不是最优雅的脚本,但如果我在本地执行它,脚本就可以工作。当我远程运行它时出了问题。

  1. 似乎foreach循环什么都不做。所以我只是有一个空闲的过程
  2. 它将开始大约15个没有问题的工作,然后其余的都报告为失败。
  3. 我尝试了各种调用函数的方法。我修改了函数,使其包含服务器变量但仍未获得所需的结果。我已将Start-Job替换为Invoke-Command。 PSRemoting工作正常我可以在远程服务器上执行基本任务。

    任何指导都将不胜感激

    以下是我的代码

    function Invoke-CPUStress
    {
    [CmdletBinding()]
    param (
        $duration
    )
    
    $start = (get-date).AddMinutes(1)
    $end = $start.AddMinutes($duration)
    
    while ((Get-Date) -lt $start)
    {
        sleep -Seconds 10   
    }
    
    while ((get-date) -lt $end)
    {
        $Load = (Get-WmiObject Win32_Processor | Measure-Object -Property LoadPercentage -Average).Average
        If ($Load -lt 60)
        {
            Start-Job -ScriptBlock {
                $result = 1;
                foreach ($number in 1..2147483647)
                {
                    $result = $result * $number
                    sleep -Milliseconds 1
                }
            }   
        }
    }
    
    Get-Job | Stop-Job
    Get-Job | Remove-Job
    }
    
    Invoke-CPUStress -duration 5
    

0 个答案:

没有答案