追踪記憶體洩漏
我之前問過一個關於非分頁池記憶體使用率非常高的伺服器的問題,有人解釋瞭如何使用 poolmon 來跟踪問題驅動程序。
我這樣做了,但我不確定我是否已經確定了這個問題。
執行 poolmon:
現在搜尋 fwpx 我只有一個“匹配”:
dsac.exe?AD 管理中心導致記憶體洩漏?- 這顯然不可能,但這是 findstr 找到的唯一匹配項。
Google搜尋 fwpx 池標籤我可以看到人們在使用 McAfee 防病毒產品時遇到了一些問題(但 Symantec SEP 安裝在此伺服器上)。
根據此 Technet 部落格文章,fwpx 池標記與此驅動程序相關:Fwpx - fwpkclnt.sys - WFP NBL 標記上下文
但如果是這樣的話,為什麼 findstr 沒有找到它呢?
然後我用Google搜尋了更多,發現了這個 kb: https: //support.microsoft.com/en-us/kb/2885980
根據 kb,FwpsAllocateCloneNetBufferlist() API 洩漏了記憶體——太棒了。
但我仍然不是 100% 這是問題所在。在安裝熱修復之前,我如何確認這個問題是由這個 WFP 錯誤引起的?我會假設它的 SEP 正在使用有問題的 WFP API。這是有道理的,因為我看到 McAfee 使用者(可能正在使用 API 的另一個 AV 產品)有類似的記憶體洩漏問題。
但可以肯定的是,我如何辨識正在呼叫 WFP API 的程序——如果這是實際發生的情況。
沒有時間遵循 magicandre1981 的建議,但能夠確認該更新檔解決了該問題。也許這會對其他有類似記憶體洩漏問題的人有所幫助。
我們注意到的另一件事:執行完整的 Windows 更新似乎包含此修復程序,但在其他一些更新檔程序中。在我們在另一台伺服器上執行完整的 Windows 更新後(而不是應用特定的更新檔),更新檔將無法安裝並拋出一個非常無用的“這個更新檔不適用於這個平台”之類的錯誤。事實證明,這個問題在其他一些更新中得到了解決。
所以我猜想應用更新檔或確保伺服器完全更新將解決
FwpsAllocateCloneNetBufferlist()
API 洩漏。