当达到 CPU 阈值时执行 ps1 脚本

当达到 CPU 阈值时执行 ps1 脚本

我正在寻找类似于调试诊断收集器的功能。

您可以在其中设置性能(或任何计数器)触发器(例如,50 秒内 CPU 超过 50%)。一旦满足触发器的条件,我就会运行 PS1 脚本。

有人做过类似的事情吗?

答案1

不确定“超过 50 秒”的情况,但您可以轮询以查看您的 CPU 是否超过了某个限制。

只是在 powershell 中快速画出草图......

# checks cpu threshold and runs script in $scriptName variable
function CPUthreshold
{
    # mandatory single variable in function for script name
    Param(
    [Parameter(Mandatory=$true)]
    [string]$scriptName
    )

    # cpu percentage limit
    $limit = 50

    # time to poll CPU limit in seconds
    $pollTimeSec = 60

    # check limit forever!
    while($true){
        # get the win32_processor object to get stats on the CPU
        $cpu =  Get-WmiObject win32_processor

        # check if the CPU is over our limit
        if ($cpu.LoadPercentage -gt $limit)
        {
            # call your script here!
            & $scriptName
        }

        # wait again until the next poll
        Start-Sleep -s $pollTimeSec
    }
}

# call function with script name you want to run
CPUthreshold .\Hello-World.ps1

您可以在线程中运行它,或者在您感兴趣的机器上在后台运行该进程。

相关内容