获取最近x分钟内计算机的平均CPU使用率

Lou*_*hys 1 .net c# system.diagnostics cpu-usage

这个问题"如何在C#中获得CPU使用率?" 显示了在.NET中获取计算机当前CPU使用率(%)的一些方法.

由于CPU使用率频繁波动,我认为当前的CPU使用率通常不是计算机繁忙程度的良好指标(例如,用于调度或负载平衡目的).有没有一种有效的方法来获得最后x分钟的平均CPU使用率,例如最后5分钟?

我正在考虑可以由负载平衡或调度模块调用的方法GetAverageCpuUsage(int period).

Sco*_*ain 5

其实这正是的PerformanceCounter2最upvoted答案中的其他问题没有,他们只是在测量1秒.

它给出的百分比NextValue()是计数器上最后一次cpu的平均百分比.因此,如果您想要在过去5分钟内获得平均cpu,则NextValue()每5分钟只调用一次.

这是一篇很好的文章,解释了如何使用性能计数器.