Performance

性能監視器:MemoryPage Faults/sec vs ProcessPage Faults/sec

  • December 4, 2017

當我調查一些硬頁錯誤時,我遇到了這個。對象記憶體和程序從同一個計數器給出不同的值:頁面錯誤/秒。是否有一些與作業系統相關的程序會導致性能監視器對象程序未監控的頁面錯誤?為什麼 Process\Page Faults/sec 總是低於 Memory Page Faults/sec?

螢幕截圖性能監視器

計數器Memory => Page Faults/sec表示系統範圍的頁面錯誤計數。軟故障和硬故障。使用者模式和核心模式。

另一方面,計數器Process => Page Faults/sec是一組計數器,它為機器上執行的每個使用者模式程序都有一個實例。因此,您可以檢查一個特定程序引起的頁面錯誤。或者,您可以選擇_Total實例以獲取所有正在執行的程序發生的所有頁面錯誤的總和。

但是即使您選擇了_Total,您仍然只能得到使用者模式程序引起的頁面錯誤。不是核心中的頁面錯誤,例如設備驅動程序。

CPU IRQL 0(所有使用者模式和大多數核心模式)或 1(核心 APC 和頁面錯誤)可以滿足頁面錯誤,但 IRQL 2(調度)或更高版本無法滿足頁面錯誤。

頁面錯誤有兩種形式:軟錯誤和硬錯誤。硬故障是可能導致嚴重性能下降的故障,因為您必須轉到磁碟(交換文件)才能滿足硬故障。軟故障並沒有那麼糟糕,因為頁面仍在 RAM 中的某個地方,它只是不在程序的工作集中,必須從主記憶體中的其他地方檢索,這比進入磁碟要快得多。

Process => Page Faults/sec => _Total所有正在執行的使用者模式程序發生的所有頁面錯誤的總和也是如此。Memory => Page Faults/sec加上任何額外的核心模式頁面錯誤。

引用自:https://serverfault.com/questions/886449