未分页内存泄露

未分页内存泄露导致虚拟机概率性僵死

 

搜狗高速浏览引起未分页内存泄露导致虚拟机概率性僵死

适用版本(必选)

Null

以XP系统为例。

现象描述(必选)

XP虚拟机经常概率性无法登录,即使虚拟机启动后,不进行任何操作,经过3天左右,无法登录,需要强制重启解决。

告警信息(可选)

该故障无伴随告警产生。

原因分析(必选)

虚拟机经常概率性无法登录,可能是由于系统故障引起,通过查看系统日志,发现有未分页内存不足,是由于操作系统未分页内存泄露一起。

处理过程(必选)

  1. 通过VNC登录该部分虚拟机,发现虚拟机任务管理器无法打开,在命令行中执行ping命令无法执行;
  2. 查看系统日志,发现系统日志有srv 1029错误;
  3. 重启虚拟机后,未分页内存,只有11M左右,监控未分页内存,发现未分页内存一直处于增长状态,如图所示,已经增加至142M。
  4. 通过XP系统自带的perfmon工具监控进程未分页内存增长,发现并没有进程异常情况;因此,可以断定该问题是由于驱动内存泄露引起。
    • 操作方法:
    1. 开始-运行,输入perfmon后回车,即可打开perfmon.exe。
    2. 在perfmon.exe的左窗格中,单击“性能日志和警报”,右键,选择,新建“性能计数器”。
    3. 在计数器的性能对象Process,计数器选择Pool Nonpaged Bytes和Pool Paged Bytes,采样间隔设置为15s
    4. 观测一段时间后(几个小时或者一天),可以通过 perfmon中的性能监控器,点击“+”,选择之前的日志文件,默认路径:C:\PerfLogs\,查看是哪个进程的未分页内存增长。
    5. 发现并没有进程异常情况;因此,可以断定该问题是由于驱动内存泄露引起。
  5. 通过poolmon.exe工具,监控导致未分页内存泄露的应用程序。
    • 操作步骤:
      1. 启用池标记。
        在运行之前PoolMon,必须启用池标记,然后重新启动计算机。标记功能池收集,并计算有关内存分配的标记值按排序的池内存统计信息。注意:在Windows Server 2003中池标记是默认启动的,所以不需要手动启用。 Windows XP的计算机中,可以使用编辑注册表或Gflags.exe工具启用池标记,在此只介绍编辑注册表方法。
        1. 运行中,输入regedit,运行注册表编辑器。在注册表中找到下面的项:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session管理器,将值更改为0x00000400的十六进制。
        2. 重新启动虚拟机。
        3. 注意完毕后调试,请重复以上步骤以禁用pool tagging。
      2. 使用Poolmon收集信息。Poolmon.exe是在Windows NT 4.0资源工具包和Windows 2000、Windows XP和Windows服务器2003 Cd-rom的\Support\Tools文件夹中可用。Poolmon可显示在命令窗口中的池标记信息。使用箭头键或向上一页和PAGE DOWN键以显示所有工具返回的标记信息。
        1. 打开Poolmon.exe,按P,按B。其中P表示监控未分页内存,B表示按字节大小排序,其他命令请参考poolmon.exe的帮助。
        2. 虚拟机刚启动时,未分页内存较小,在处理的问题中,运行一段时间后,可以明显发现Tag为gsmi的程序Nonp持续增长,驱动一般在C:\windows目录下,但是在该目录下为查找到标记为gsmi的驱动,然后通过搜索C:\program files搜索,发现该驱动位于搜狗浏览器安装目录下,标签为gsmi的驱动内存泄露,通过搜索发现该驱动是由“搜狗高速浏览器”。注:应用程序会在系统驱动文件中打上标签,如果打开sogouqosxp.sys文件,可以看到gsmi标记。
  6. 卸载该浏览器后,gsmi的驱动调用不存在,并且未分页内存处于稳定状态,问题解决。


参考信息(可选)

NonPaged Pool,未分页池,一旦加载到该池就始终驻留在物理内存中。任何进程都可以访问到未分页池,NonPaged在WinXP x86系统中最大只允许256MB(在boot.ini中带/3GB参数启动的OS,NonPaged最大值为128MB)

建议与总结

对于应用程序导致的操作系统未分页内存泄露问题,可以通过微软的perfmon.exe和poolmon.exe工具检测,检测到问题根源后,一定要卸载该应用程序,选择替代品。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值