我有一台服务器,大部分时间 CPU 负载都低于 5%,除了一天中偶尔会出现几次轻微的 CPU 峰值。我是使用 PRTG 发现这一点的。
我如何才能找出导致 CPU 峰值的进程?使用 PRTG 可以轻松监控 WMI CPU 负载,但我真正需要的是一种定期记录最耗 CPU 的进程的方法。
我猜这可以通过 perfmon 来完成,但是这项工作需要哪些性能计数器?
谢谢,
阿德里安
答案1
数据收集器集非常好,非常专业,并且可以通过诸如高 CPU 使用率之类的事件触发。
您也可以使用 Powershell。
$proc = Get-Process | Sort-Object TotalProcessorTime -Descending -EA 0 | Select -First 1
"$(Get-Date) - $($proc.Name) - $($proc.TotalProcessorTime)" | Out-File file.txt -Append
将其保存为 *.ps1。每 5 分钟或其他时间将其作为计划任务运行。第一行查找当时最“耗费 CPU”的进程。第二行将其记录到带有时间戳的文件中。
您还可以尽可能地发挥想象力,让脚本仅在系统总 CPU 使用率超过 99% 或类似情况时才记录日志。一切皆有可能。