win10非分页缓冲池占用过大的解决方法

关于分页缓冲池与非页面缓冲池,可见文章windows 分页缓冲池 非分页缓冲池。简言之,页面缓冲池,是进程调用某些系统功能时,由系统核心或者驱动程序分配的。如果一个程序占用的页面缓冲池内存不断增大,既为内存泄露。借助poolmon工具,可对这类泄漏问题进行诊断。

poolmon诊断

poolmon是微软驱动开发套件的中一个独立的命令行程序,也可单独下载。(下载地址)。
执行poolmon -b,按Byte降序排列:
在这里插入图片描述
当驱动的Allocs明显大于Frees时即存在明显的内存泄漏。上图中未发现明显的泄漏项,但Tag名为FMfn的条目占用的Bytes非常大,值得关注。使用下面的代码可找到Tag所对应的驱动:

Set-Location "C:\Windows\System32\drivers"
Select-String -Path *.sys -Pattern "FMfn" -CaseSensitive | Select-Object FileName -Unique

FMfn
可见,FMfn对应的驱动文件是fltMgr,它是系统提供的MiniFilter框架的驱动。MiniFilter是微软开发的过滤管理器,这个驱动主要作用就是如果有文件操作可以通知应用程序。使用fltmc命令可查看系统中存在哪些minifilter。
在这里插入图片描述
其中比较可疑的是lrtp,它属于联想电脑管家,这个软件早就删掉了,可能是其残留的驱动,“联想内存泄漏”对其有讨论。
C:/windows/system32/drivers/lrtp.sys无法直接删除,需要先关闭其开机自启动,重启后即可删除。具体方法是在注册表中找到计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lrtp项,将其中Start键的值改为4(表示禁止启动)。重启后即可正常删除C:/windows/system32/drivers/lrtp.sys。删除lrtp.sys后内存泄漏问题有所缓解,没有完全解决,应该还有其他的问题,待后续研究。

参考资料

windows 分页缓冲池 非分页缓冲池
poolmon下载
Finding Memory Leaks with PoolMon
桌面云虚拟机内存泄露排查
联想内存泄漏
Win10 内存泄露/非分页缓冲池占用过多问题分析定位

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值