我需要过去 15 分钟的平均 CPU 利用率。我需要命令行或 PowerShell 中的值。
Windows 是否会保留过去 15 分钟的 CPU 使用率的滚动平均值?(基本上类似于在 Linux 上键入“正常运行时间”并获取过去 1、5 和 15 分钟的 CPU 负载的滚动平均值)。如果没有,还有哪些其他选项可以获取此值,或者我是否应该采用完全不同的方法来监控我的服务器在过去 15 分钟内是否平均承受了很大的压力?
(我确实知道一种非常低效的方法来做到这一点:记录到磁盘,然后读取日志并手动计算平均值。大致如下(PowerShell):
# Initialize a perf counter
logman.exe create counter DashboardCpuTime -c "\processor(_total)\% processor time" -a --cnf --v -f bincirc -max 1 -o "c:\perflogs\DashboardCpuTime.blg" -si 00:00:10
logman.exe start DashboardCpuTime
# Get the average value by stopping, reading the log, calculating the average in PowerShell, and starting again
logman.exe stop DashboardCpuTime
(Import-Counter -Path "c:\perflogs\DashboardCpuTime.blg" -Counter @("\processor(_total)\% processor time") | ForEach-Object { $_.CounterSamples.CookedValue } | Measure-Object -Average).Average
logman.exe start DashboardCpuTime
但我对它的开销和复杂性并不满意,而且每 10 秒采集的样本仍然是瞬时值,而不是 10 秒平均值)