我对使用 Perfmon 和性能监控还很陌生(所以请对我宽容一点 ;)
我知道 Perfmon 没有与任务管理器的 CPU 使用率显示完全相同的东西,但我正在尝试弄清楚如何以类似的方式通过 Perfmon 监视用户的 CPU 使用率,并尝试了解测量结果(或如何转换数字以获得类似的理解)
例如,如果在任务管理器中,某个用户持续使用超过 5% 的 CPU,我就会就此事与该用户联系。
我最擅长通过例子来学习,因此下面就是我想要做的,并给出一个具体的例子:
这是用于 32 位双四核 Windows 2003 网络服务器(8 个 CPU),服务器上有许多网站,每个网站都在自己的应用程序池/工作进程 ID 中运行。
通过此处的其他研究,我了解到我所做的注册表更改,以便 PID 与 w3wp 进程一起显示,这样我就可以通过交叉引用轻松识别该站点。
我设立了一个计数器,设置如下:
Process -> % Processor Time -> all instances
以下是一个例子。假设我对“黑线“用户如下图所示,因为他的进程与所有其他用户相比峰值相当高:
(由于我是该网站的新用户,因此不允许发布该图片。我已将图片上传至:)
http://i35.tinypic.com/106yn8k.jpg
因此...以此为例,我发现他们有一个平均处理器时间 % 为 23.264,最高达到 103.124
那么这个 23.264 数字对我来说到底意味着什么?它是否与该用户的任务管理器 CPU 读数平均值相似?
或者,由于该服务器有 8 个 CPU,我应该将这个数字除以 8 吗?(23.264/8 = 2.9% 平均 CPU 负载?)
提前致谢。
答案1
大多数人往往不关注处理器时间,而是关注处理器队列长度(等待处理器的线程数)。
话虽如此,这里有一个很好的解释:
http://www.windowsnetworking.com/articles_tutorials/Key-Performance-Monitor-Counters.html
答案2
我知道这个问题有点老了,但在这里可以找到另一个相关讨论:
Perfmon 进程:% 处理器时间与任务管理器的 CPU 使用率
主要的是,您还需要捕获“处理器\%用户时间”并将其乘以您感兴趣的进程的“进程\%处理器时间”。
我个人认为你应该包括“processor_% 特权时间”,因为“process_% 处理器时间”包括“process_% 用户时间”和“process_% 特权时间”,但不要相信我的话。