Windows 10 記憶體洩漏 - 標籤 (poolmon) FMic 和 Irp - 5.7GB 的非分頁池

Windows 10 記憶體洩漏 - 標籤 (poolmon) FMic 和 Irp - 5.7GB 的非分頁池

所以我最近注意到記憶體使用率極高。僅在開啟 Chrome 並開啟 20 個分頁時,我就使用了 13.5 / 16GB 記憶體。任務管理器報告 Chrome 僅使用約 3GB 記憶體。任務管理器中報告的所有剩餘進程總共佔用了不到 1GB 的額外內存,因為大多數進程使用的內部存在 10MB 到 50MB 之間。

我使用 RamMap 來獲取更多詳細信息,我發現非分頁池非常高,達到 5.7GB。這是一張圖片RamMap

我用過poolmon並發現有兩件事正在耗盡大量的非分頁池。這是一個池蒙的影像

根據谷歌標籤搜尋和這個清單在這裡,這就是這兩個標籤的用途:

  • FMic - fltmgr.sys - IRP_CTRL 結構
  • Irp - 未知 - Io、IRP 封包

但現在我已經走進了死胡同。我見過其他類似的問題,但沒有一個涉及這些標籤。其他人的問題通常來自於驅動程序,他們只需更新它即可。但在這種情況下,我不知道該如何解決這個問題。

我找到了文件fltMgr.sysC:\Windows\System32\驅動程式,但這似乎是微軟的事。在下面屬性 -> 詳細信息,其名稱為“Microsoft Windows 作業系統”,其檔案描述為“Microsoft 檔案系統篩選管理器”。即這不僅僅是我可以更新的驅動程式。

至於IRP標籤,我不知道。

有什麼建議麼?我可以從哪裡獲得它以及我能做什麼?

編輯 2018 年 3 月 3 日: 我沒有 Killer 網路卡。

我用 xperf 來錄製,我得到了到目前為止。不太確定從這裡去哪裡,或者我可以上傳 .etl 文件,儘管它很大,所以不確定在哪裡。讓我知道上傳是否有幫助。

重新啟動後可能需要 40 分鐘,並且已經有 517MB 的非分頁池。

編輯 2018 年 4 月 3 日 #1:一天後非分頁池目前為 1GB。看起來它以每天約 1GB 的速度增加。fltmc可以找到輸出這裡

至於IRP- 我不使用防毒或備份程序,除非你算上 Windows Defender。不過,我確實使用了從C: 驅動器(SSD) 到F: 驅動器(HDD) 的符號鏈接來存儲Google Chrome 和Skype 的緩存文件夾,因為它們每天會在磁碟上寫入20GB,這是我不希望出現的情況我的SSD。這個快取工作正常並且寫入我的 HDD 也很好,但我不認為它會導致 I/O 失敗。

我還有一個包含 2 個 HDD(每個 1 TB)的 Raid 0 陣列,是透過 Windows 的內建儲存空間創建的,而不是透過 BIOS 或類似的東西。我不認為這與IRP也有事嗎?

最後,我在玩電子遊戲的時候也會記錄我的玩法。當我啟動遊戲時,它會使用名為 Plays.TV 的客戶端自動在背景執行。但同樣,這是成功的,我不明白為什麼會發出 I/O 請求但未完成。當我退出遊戲時,影片就會完成錄製。

編輯 2018 年 4 月 3 日#2:我已經typeperf "Memory\Pool Nonpaged Bytes" -si 20 -o npptracker.csv按照@HelpingHand的建議使用並繪製了結果圖表。我還用所有事件對圖表進行了註釋,因此您可以看到與向上或向下跳躍的非分頁位元組對應的操作。這裡是圖表。在上面,您可能會看到一些您不認識的東西:

  • 絕地求生- PlayerUnknown's BattleGrounds 的縮寫,是我最近在玩的一款電玩遊戲
  • 戲劇電視- 錄影用戶端,進入遊戲後自動開始錄製,退出遊戲後自動停止錄製。它還記錄一些遊戲的元數據,並將其作為標記放置在影片的時間軸上,例如,當我殺死某人時,我有時會在時間軸上看到標記。該元資料記錄在.framelet文件。
  • Twitch.tv- 一個串流媒體網站
  • 瀏覽器遊戲的機器人- 只是一個執行 HTML 請求的機器人。它每次只運行大約 30 到 60 分鐘,我相當有信心它不會產生任何影響。

正如您在圖表中看到的,我使用以下命令使用 Xperf 大約 7 分鐘:Xperf -on PROC_THREAD+LOADER+POOL -stackwalk PoolAlloc+PoolFree+PoolAllocSession+PoolFreeSession -BufferSize 1024 -MinBuffers 256 -MaxBuffers 256 -MaxFile 1024 -FileMode Circular

這已經產生了1GB.etl我已壓縮並上傳的文件這裡 (80MB)

poolmon最後,我在停止後大約2-3分鐘再次使用xperf。我忘了把它放在時間軸圖上。這裡是結果的圖像。

答案1

分析踪跡WPA.exe 中顯示FMic池使用情況來自RazerCortex.exe建立檔案 ( KernelBase.dll!CreateFileW) 時發生的情況。

在此輸入影像描述

這也會導致 IRP(代表I/O請求包) 用法:

在此輸入影像描述

rzudd.sys 驅動程式也會導致 IRP 使用:

在此輸入影像描述

所以更新刮鬍刀工具或最好將其刪除(以及所有其他與 Razor 相關的軟體/驅動程式)。

答案2

我有同樣的問題。 FMic 和 IRP 標記始終位於頂部,如果我的電腦長時間處於開啟狀態而沒有正確重新啟動,則會佔用大量非分頁池。我將其指向 Razer Cortex,當時我唯一的 Razer 軟體,在我卸載它的第二次,在我的電腦開啟幾天后,我的非分頁池縮小到 1.2GB,而不是 3-4GB。此前,我曾嘗試重新安裝 Killer Network 驅動程序,並為我不再使用的設備刪除 Razer 驅動程序,但都沒有刪除 Cortex 那樣有效。

相關內容