在基於 Windows 的系統中測量進程 cpu 使用率的最準確方法是什麼

在基於 Windows 的系統中測量進程 cpu 使用率的最準確方法是什麼

我一直在嘗試找出測量 Windows Server 2012R2 系統中進程 CPU 使用率的最佳方法,但我發現用於測量使用率的方法之間存在許多不一致之處。

最初,我透過任務管理器來觀察CPU 使用率,但它只為您提供利用率快照,而不是特定時間段內的數據,因此我決定使用其他工具,例如procmon 或process explorer,但不使用其中任何一個這兩個報告相同的數字,甚至進程之間的排名。

以下是不一致之處:

1) 任務管理器的「進程」標籤和「詳細資料」標籤顯示「%CPU 使用率」完全不同的值以及這些進程之間的排名。例如,進程選項卡顯示:

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

而「詳細資料」標籤顯示:

  • 空閒%55(這不是奇數部分)
  • sdf.exe %11
  • ert.exe %9
  • abc.exe %7

2) 與任務管理器「進程」標籤和「詳細資料」標籤相比,進程資源管理器CPU% 顯示不同的值:我知道這些值的顯示可能會出現延遲或輕微不一致,但所有三個位置顯示的值幾乎都是完整的與上面的例子不同。

3) Process Monitor 也給出了有關進程在CPU 使用率方面的排名的不一致資訊:儘管ProcMon 沒有給出進程的百分比值,但這些進程之間的排名(就CPU 時間而言)與Process Explorer 都不配對或任務管理器排名。

總而言之,問題是:哪一項測量能夠最精確地表示進程間的 CPU 使用率?

答案1

最準確的是 Process Explorer,原因如下:

  • 它顯示每個進程的 CPU 使用率百分比,預設四捨五入到兩位小數的分辨率,而不是整數
  • 它追蹤服務中斷和 DPC 所花費的時間,並將它們與空閒進程分開顯示(任務管理器不這樣做)
  • 它使用額外的系統指標,以便可以識別消耗少量 CPU 的進程,並在可能的情況下提供更準確的實際 CPU 消耗情況

PE 是一個詳細的工具,在 Mark Russinovich 和 Aaron Margosis 的 Windows Sysinternals 管理員參考中提到,PE 是顯示最詳細資訊的工具。

編輯:追蹤中斷的能力對於其他任務也非常有用,例如調試軟體和尋找有問題的驅動程式。

相關內容