如何定期记录最耗费 CPU 的进程?

如何定期记录最耗费 CPU 的进程?

我有一台服务器,大部分时间 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% 或类似情况时才记录日志。一切皆有可能。

相关内容