在基于 Windows 的系统中测量进程 CPU 利用率的最准确方法是什么

在基于 Windows 的系统中测量进程 CPU 利用率的最准确方法是什么

我一直在尝试寻找测量 Windows Server 2012R2 系统中进程的 CPU 利用率的最佳方法,但我发现用于测量利用率的方法之间存在许多不一致性。

最初,我查看了任务管理器来观察 CPU 利用率,但它只提供了利用率的快照,而不是一段时间内的数据,因此我决定使用其他工具,如 procmon 或 process explorer,但这两个工具中的任何一个都没有报告相同的数字,甚至没有报告进程之间的排名。

不一致之处如下:

1) 任务管理器的“进程”选项卡和“详细信息”选项卡显示的“%CPU 利用率”值和这些进程之间的排名完全不同。例如,进程选项卡显示以下内容:

  • ABC.exe %24
  • 123.exe %10
  • sdf.exe %3

而“详细信息”选项卡显示:

  • 空闲 %55 (这不是奇数部分)
  • 自解压文件%11
  • ert.exe %9
  • 执行文件 %7

2)与任务管理器的“进程”选项卡和“详细信息”选项卡相比,进程资源管理器 CPU% 显示的值不同:我知道这些值的显示可能会有延迟或轻微的不一致,但就像上面的例子一样,这三个地方显示的值几乎完全不同。

3) Process Monitor 还给出了关于进程在 CPU 利用率方面的排名的不一致信息:尽管 ProcMon 没有给出进程的百分比值,但这些进程之间的排名(就 CPU 时间而言)与 Process Explorer 或 Task Manager 的排名都不匹配。

总之,问题是:哪一个测量值可以最准确地表示进程的 CPU 利用率,为什么?

答案1

最准确的是 Process Explorer,原因如下:

  • 它显示每个进程的 CPU 利用率百分比,默认情况下四舍五入到小数点后两位,而不是整数
  • 它跟踪服务中断和 DPC 所花费的时间,并将它们与空闲进程分开显示(任务管理器不这样做)
  • 它使用额外的系统指标,以便可以识别消耗少量 CPU 的进程,并在可能的情况下提供更准确的实际 CPU 消耗量

PE 是详细的工具,在 Mark Russinovich 和 Aaron Margosis 编写的《Windows Sysinternals 管理员参考》中提到它作为显示最详细信息的工具。

编辑:跟踪中断的能力对于其他任务、调试软件和查找故障驱动程序也非常有用。

相关内容