设为首页 收藏本站
查看: 578|回复: 0

[经验分享] 用poolmon查找windows内存泄露的例子

[复制链接]

尚未签到

发表于 2018-6-15 13:35:29 | 显示全部楼层 |阅读模式
  这个工具可以监视内存中总共使用的页面数和非页面的"内存池",以探测内存中有无"空洞"存在.内存中的所谓"空洞"是指:本来可供使用、但实际上并未使用的区域.减少空洞可以提高内存的使用效率,防止内存的浪费.与使用别的命令行程序不同,这个程序需要在加载运行之后才可以得到"在线"的提示帮助信息.另外,这个工具还需要一个叫做gflags的程序来配合,更麻烦的是程序gflags也像前面介绍的有些程序一样,具有适应两种环境的版本.这种互相交叉的用法使得不熟悉它们相互关系的人感到眼花缭乱.下面结合Poolmon.exe的使用,对二者都先介绍命令行的版本.
  1、 在使用Poolmon.exe之前,必须先运行gflags.可以在“开始->运行”中键入cmd,点击确定打开命令行窗口,(注意:本文中所有命令行程序都可以先用cmd打开一个类似dos模式的窗口),然后在窗口中键入命令和参数,执行该命令行程序:gflags -r +ptg 参数的含义到介绍gflags的GUI版本时再解释.
  2、 执行后重新启动计算机.
  3、 重新启动成功后,即可在命令行中执行 poolmon
  以下内容转自:http://space.itpub.net/4670/viewspace-351828
  poolmon.exe 使用说明:
    http://support.microsoft.com/kb/177415/en-us/
  一次故障解决过程
  平台:Window 2003 R2 SP1
  故障描述一:客户反映数据库服 务器每隔几天时间,客户端就无法连接,提示监听程序无法解析专有服务器进程。
  处理步骤一:首先判断是否是由于Oracle的SGA分配过大导致用户无法创建新的连接, 检查操作系统得/3GB参数、Oracle的SGA参数和客户端连接数,可以初步排除不是由于SGA分配过大导致的用户无法创建新的连接
  故障描述二:在跟踪案例细节时,客户反映故障发生时有时任务管理器都无法打开
  处理步骤二:任务管理器无法打开可能是由于病毒引起,但是数据库服务器从来不会安装运行新的软件,而且也安装了瑞星杀毒软件, 应该可以排除病毒原因,继续检查系统核心内存,发现系统核心未分页内存数在故障时达到120M,而且启动时仅30M左右,未分页内存120M左右已经到达操作系统的限制了,因此可以断定Oracle无法创建新的连接和任务管理器无法打开的原因都在于此。
  处理步骤三:已经确定由于是无法分配未分页内存导致的故障,下一步就应该查找究竟是什么程序持续占用了系统未分页内存。这里使 用Windows的poolmon工具来进行监视。
  运行poolmon发现三个可以的tag分别是Ddk,Mmcm和r100,这三个tag都占用了较大的未分页内存(10M)。重新启动服务器后,再次运行poolmon观察到Mmcm和r100在启动时就占用了较大的未分页内 存,与故障时相比变化不大,可以排除。Ddk在启动时时仅占用600K左右的内存,可以断定Ddk发生了内存泄漏。
  处理步骤四:确认Ddk究竟是什么咚咚,这里借鉴了网上同仁的处理经验,在此表示感谢。
  检查pooltag.txt看到Ddk - <unknown>- Default for driver allocated memory (user's of ntddk.h)说明Ddk是由驱动程序使用
  搜索使用Ddk使用的驱动程序(再次感谢网上同仁提供的思路)
  findstr /s /m /l &quot;Ddk&quot; c:\windows\system32\drivers\*.sys 返回四个结果
  basetdi.sys ipvw32.sys storport.sys wdf01000.sys其中后三个是Windows自身的驱动,basetdi.sys为瑞星驱动
  故障描述三:Windows自身驱动可能性极小因此可以暂时排除,重点放在瑞星驱动上。有了目标后再次跟踪,观察到在晚上当系统空闲时未分页空间的大小基 本不会增长,而白天系统繁忙时未分页空间的大小有着明显的增长。
  处理步骤五:联想到和瑞星驱动相关的,一个是本地I/O被瑞星影响,一个是网络IO被瑞星影响,而这些都和瑞星实时监控相关。于是停止瑞星实时监控,运行poolmon观察到Ddk的值不再增长,在此确认是由于瑞星引起的内存泄漏。
  结果:由于服务器上极少去做操作,运行瑞星实时监控的必要性不大,因此建议用户先停止瑞星实时监控以解决这个问题,然后联系瑞 星公司处理
  工具poolmon.exe说明(XP下可以用memsnap工具)
  1. 使能Tag模式
  在使用poolmon之前,你必须使能Tag模式并重新启动服务器。池Tag的特性是将收集和计算的信息通过分配内存的Tag值进行排序。
  注:使用Windows 2003服务器不需要使能Tag,它是Windows 2003的默认值
  方法一:编辑注册表
  在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager下增加键GlobalFlag值0x00000400(十六进制);
  重新启动计算机。
  方法二:使用Gflags.exe工具
  运行Gflags.exe工具选择Enable Pool Tagging
  2. 使用poolmon.exe工具收集信息
  使用以下步骤复制和存储Tag信息,以间隔15分钟的方式统计2小时,添加信息到文本中。
  1. 运行Windows工具包中的程序poolmon.exe
  2. 按P显示未分页池
  3. 按B按字节大小排序
  4. 每十五分钟保存一次屏幕内容
  在数据收集结束后,分析Tag信息看看是否存在分配尺寸持续增长
  附:poolmon.exe命令说明:
  语法:poolmon [itag][xtag][swtich]
  itag:列出匹配Tag名的池,可以使用通配符*和?
  xtag:列出不包含Tag名的池,可以使用通配符*和?
  swtich:
  P- 切换显示未分页或显示已分页或两者都显示
  L - 切换是否高亮显示值有变化的行
  E- 在数据的底部显示池合计值
  H/? - 帮助
  Q- 退出
  T- 按Tag名排序
  A-按分配尺寸排序
  F- 按空闲尺寸排序
  D- 按分配和空闲的差排序
  B- 按使用字节排序
  M -按分配字节排序
  列说明:
  Tag:池分配的4字节Tag
  Type:分页或未分页
  Allocs:所有分配的计数
  ():分配列中与上次更新的差异
  Frees:所有空闲的计数
  ():空闲列中与上次更新的差异
  Diff:(Allocs - Frees)
  Bytes:池消耗的合计字节数
  ():字节列中与上次更新的差异
  Per Alloc:(Bytes/Diff)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-524263-1-1.html 上篇帖子: 实用小命令-windows下查看端口占用情况 下篇帖子: WINDOWS INSTALLER无法启动解决方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表