监控 CPU 使用率并终止 CPU 利用率过高的服务的 Shell 脚本

监控 CPU 使用率并终止 CPU 利用率过高的服务的 Shell 脚本

我们有一台 Windows 2003 服务器,其中有 3 个服务在持续运行。有时这些服务消耗超过 90% 的 CPU。重新启动这些服务即可恢复正常。我需要一个脚本/程序来持续监控 CPU 使用率,如果使用率很高,则重新启动这些服务。

经过一番研究,我发现这个脚本可以监控 CPU 使用率科技网

监控CPU使用率的脚本:

(get-counter -Counter "\Processor(_Total)\% Processor Time"
-SampleInterval 1 -MaxSamples 10 |
    select -ExpandProperty countersamples | select -ExpandProperty
cookedvalue | Measure-Object -Average).average

这将监视 CPU 使用率 10 秒,然后显示平均输出。

更多来自堆栈溢出服务器故障我找到了重新启动 Windows 服务的脚本。(哪一个更好?

现在我需要的是 CPU 使用率脚本在使用率 >90% 的条件满足时调用服务重启脚本。如能得到任何帮助我将不胜感激。

答案1

只是为了记录..这是回答

$cpuutil=(get-counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 1 -MaxSamples 5 |
    select -ExpandProperty countersamples | select -ExpandProperty cookedvalue | Measure-Object -Average).average

If ($cpuutil -ge 90)
{Restart-Service MyService1, "My Service2", MyService3}
Else
{Exit}

Powershell 确实让生活变得更简单!

答案2

如果商业解决方案可以,请查看我们的服务保护者。它将照看任何 Windows 服务,如果该服务占用 CPU 时间过长,它将重新启动它。

相关内容