最近準備項目上線,做了大量的壓測工作,發現了在有些機器上會出現大量的頁面錯誤,這些錯誤會導致內存中斷。
然而實際的測試數據來看,分兩種情況,有大量中斷不影響性能和有大量中斷影響性能。
經過調查發現:大部分的文章中只提及的page fault會導致系統從硬盤中獲取內存,導致效率下降。
而實際上內存中斷分爲軟中斷和硬中斷。
軟中斷:內存實際還在物理內存中,但是已經移出working set。只需從standby list中重新獲取該內存頁。速度較快,基本不影響性能
硬中斷:內存不在物理內存中,需要從硬盤的page file中讀取對應的內存頁,這個是需要硬盤I/O,對性能影響較大。
我們可以通過任務管理和資源監視器中查看對應的信息。
任務管理器
資源監視器
通過這兩個工具觀察,因爲頁面錯誤不斷增加,而硬中斷一直是0,新增的頁面錯誤觸發的都是軟中斷。
參考文章:
https://blogs.msdn.microsoft.com/ntdebugging/2007/10/10/the-memory-shell-game/