服务器内存爆满问题
现象:服务器内存爆满,但实际内存未爆满。但服务器重启后内存暂时恢复正常。
原因:某一个底层驱动或者系统服务发生严重的内存泄漏,开机后就一直在疯狂吃内存,造成内核内存黑洞
排查过程:
1、内存分布诊断(利用 RAMMap查看内存使用分布)
非分页池(Non-paged pool)占用异常偏高,达到 1.5GB 以上
2、poolmon工具根据Diff数倒序排列查找。
查到服务器重启后某个进程打开了超过 238 万个文件句柄,并且没有关闭它们。这些句柄占用了将近 1 GB 的 非分页池。
3、用Sysinternals 工具包里的 handle.exe 直接查“耗句柄”的进程
handle.exe -a > C:\handles.txt
搜索File 标签相关的项,看哪个进程的名字反复出现次数最多。
找到是“\Device\CdRom0”,第一反应是挂载的ISO镜像导致,排查后发现虚拟机未挂载镜像。
4、换用图形界面工具Sysinternals 工具包查找“CdRom0”对应的exe程序
按下快捷键 Ctrl + F(查找句柄find hanle)找“CdRom0”对应的exe程序,联系软件厂家处理

浙公网安备 33010602011771号