![追踪内存泄漏](https://linux22.com/image/661111/%E8%BF%BD%E8%B8%AA%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F.png)
我之前问过问题关于一台具有非常高的非分页池内存利用率的服务器,有人解释了如何使用poolmon来追踪问题驱动程序。
我已经这样做了,但我不确定我是否已经发现问题。
运行poolmon:
现在搜索 fwpx 我只得到一个“匹配”:
dsac.exe?AD 管理中心导致内存泄漏?- 这显然不对,但这是 findstr 找到的唯一匹配项。
通过谷歌搜索 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 的程序 - 如果这实际上正在发生的话。
答案1
没有时间按照 magicandre1981 的建议去做,但能够确认补丁已解决这个问题。也许这对其他有类似内存泄漏问题的人有帮助。
我们注意到的另一件事是:运行完整的 Windows 更新似乎包含此修复程序,但包含在其他补丁中。在另一台存在此问题的服务器上运行完整的 Windows 更新(而不是应用特定补丁)后,补丁无法安装,并抛出非常无用的“此补丁不适用于此平台”错误。事实证明,此问题已在其他更新中得到解决。
因此我猜想应用补丁或确保服务器完全更新将解决FwpsAllocateCloneNetBufferlist()
API 泄漏问题。