记一次Windows10驱动导致的内存泄漏
放假回家,发现家里的台式机开机之后内存占用越来越高,直至占满内存。但是安装的软件有点多,若重装系统将很麻烦,于是直接内存分析,找出病原。
本文截图皆为事后补充,可能与有问题症状的截图不同,仅供参考
工具准备
请根据下面的不同方法选用
- RAMMap
- PoolMon
- CMD 或 PowerShell
症状描述
在开机后,非分页缓冲区大小以大约4MB/s的速度增长,直至占用全部内存空间,导致死机。在任务管理器中没有发现异常占用内存的程序。
解决方案
使用sfc /scannow
检查系统
遇到Windows问题,首先检查系统文件完整性,以确保并非系统文件被篡改引起的问题。
但是在本例中,尽管命令行提示已经修复被修改的文件至Windows原版,但是依旧存在问题。
使用RAMMap查看内存占用情况
首先想到了这个小工具。这个工具可以查看内存的详细占用情况、分页,也有统计硬盘占用情况的功能(读取MFT分区表)。但是该程序仍然无法查找出内存泄漏的罪魁祸首,那么内存泄漏的程序应该不是用户的应用程序了。于是我把目光转向Windows驱动上。
使用PoolMon监视Windows内存池
该程序可以查看当前Windows内存池的具体情况。
首先按下P
键,切换到非分页缓冲区的占用情况,再按下B
键使条目按照Byte
大小排列,最后按下D
键使条目按照Diff
大小排列。
Diff
越大,说明内存使用或泄漏越多。不正常的情况Diff
会逐渐增大,只要看变化条目(白色高亮条目)即可。
记录下不正常条目的Tag,然后在Driver目录下搜索即可。搜索命令:findstr /s /m /l "<不正常内存池Tag>" C:\Windows\System32\drivers\*
。
故障根源
由搜索结果可知,HDAudio.sys
内存泄漏,具体原因未知。我猜测是硬件问题,或者是NVIDIA音频驱动的问题。目前正在删除NVIDIA驱动,排除故障原因。
最后更新于 2021-09-23 18:20:28 并被添加「内存泄漏」标签,已有 20773 人阅读过。
本文距离最后一次更新已超过180天,部分内容可能会随着时间的推移变更或失效。
Windows10没有win7好用
直接换台电脑吧?