Windows 10 运行一段时间内存占用会爆满,Non-paged pool 占用内存会剧增,好多G。
网上查询资料,此情况通常是驱动之类导致的内存泄漏,尤其可能是网卡驱动。更新主板、网卡驱动之类后,发现并没有解决。进一步查询资料,发现了 poolmon.exe
这个工具,可具体定位内存泄漏的程序/文件,下载 poolmon.exe
工具后,
重启电脑后执行:
poolmon.exe -p -b
截图保存,记住当前内存占用情况。运行一段时间,内存占用激增后,再执行上面的命令,对比查看哪个Tag 占用的内存剧增,通常就是根源。
如上图,运行一段时间后,发现是 Thre
这个tag 占用内存缓慢增加。
命令行下,进行 C:\ 根目录,在根目录开始查找使用此 Tag 的程序,输入
C:\>findstr /s Thre *.sys
但使用 findstr 通常会报错:FINDSTR: write error
下载使用 strings.exe 结合使用比较好
strings.exe *.sys | findstr /s Thre
与网上别人遇到的情况不同,查找出来包含 Thre
字符的 *.sys
文件特别多,因为匹配 Thread
后来发现停用 MySQL 数据库服务,内存占用降低。
再次启动MySQL 服务,观察 Thre
tag 占用内存,会一点点增大,自此发现根源。
再次尝试在 MySQL 安装目录再次查询
strings.exe *.sys | findstr /s Thre
没有找到任何匹配结果……
当前 MySQL 版本 5.7.9,准备升级。
下载 MySQL 5.7.30 安装包,安装时提示发现旧版本,可升级。升级完成后,观察一段时间,内存泄漏问题未再出现…