我的 Windows 7 64 位元電腦有效能問題。經過一番調查,我發現每秒的頁面錯誤數(效能監視器報告的)非常高。
其他一切似乎都很正常。資源監視器報告沒有硬故障和大量可用記憶體。
這是造成問題的潛在原因,還是轉移注意力?如果它可能導致問題,我接下來應該做什麼來找出導致問題的原因?
這是效能監視器的螢幕截圖。請注意,每秒平均頁面錯誤數為 75,887 次。在另一台沒有問題的計算機上,這個數字接近 3,000。
這是資源監視器的螢幕截圖,按硬故障/秒排序,目前所有進程的硬故障數均為 0。
答案1
流程瀏覽器有一個欄位可用於檢查正在產生多少頁錯誤,
這樣您就可以識別導致問題的程式並進行更具體的故障排除。
效能監視器:平均頁面錯誤/秒:
此計數器給出了大致的次數所請求的資訊不是應用程式(和 VMM)期望的訊息。該資訊必須從記憶體中的另一個位置檢索或來自頁面文件。回想一下,雖然持續的數值可能表示這裡有問題,您應該更關心代表實際讀取或寫入磁碟的硬頁面錯誤。請記住,磁碟存取比 RAM 慢得多。
答案2
硬頁面錯誤是指記憶體管理器發現其所需的記憶體區塊不在 RAM 中。該記憶體已被換出到磁碟,並且您的系統速度會變慢,因為從那裡獲取記憶體需要更多時間。向系統添加更多記憶體以減少頁面錯誤數量並提高效能。
答案3
「頁面錯誤/秒」包括軟錯誤(可以從/向 RAM 提供服務的頁面)和硬錯誤(必須從/向磁碟提供服務的頁面)。因此,「頁面錯誤/秒」值較高並不一定意味著有問題。軟頁面錯誤的範例包括在轉換清單中翻頁(它由備用清單和修改清單組成;它們包含暫時未使用的記憶體頁面,這些頁面是調出到磁碟的候選者(如果不修改則被丟棄),但仍在RAM 中)轉換為活動頁面並將活動頁面轉換為轉換清單。在 Windows 10 中,當壓縮頁面轉換為活動頁面時也可能會發生這種情況(因為 Windows 10 具有記憶體壓縮功能)。
若要查看硬故障,您可以使用每秒頁數、每秒輸入頁數或每秒輸出頁數計數器。
答案4
以下是 Windows Internals 書中有關頁面錯誤的表格。 (我已經排除了導致訪問衝突的那些):
- 故障原因 - 結果
- 存取不在記憶體中但在磁碟上的頁面檔案或映射檔案中的頁面 - 分配實體頁面,並從磁碟讀取所需頁面並將其放入相關工作集中
- 存取備用或修改清單中的頁面 - 將頁面轉換到相關進程、會話或系統工作集
- 造訪零需求頁面 - 將零填充頁面新增至相關工作集
- 寫入寫入時複製頁面 - 製作頁面的進程專用(或會話專用)副本,並取代進程或系統工作集中的原始副本。
您可以參考問題了解更多詳情導致頁面錯誤的原因
有這麼多的理由page fault
。