High CPU Dump收集工具 - ProcDump使用方法

工具介绍

ProcDump是System Internal提供的一个专门用来监测程序CPU高使用率从而生成进程dump文件的工具。ProcDump可以根据系统的CPU使用率或者指定的性能计数器来针对特定进程生成一系列的dump文件,以便调试者对事故原因进行分析。

下载地址

http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx

使用方法

命令行

procdump [-64] [[-c CPU usage] [-u] [-s seconds]] [-n exceeds] [-e [1 [-b] [-f filter] [-g]]] [-h] [-l] [-m commit usage] [-ma | -mp] [-o] [-p counter threshold] [-r] [-t] [-d <callback DLL>] <[-w] <process name or PID> [dump file] | -i <dump file> |-x <dump file> <image file> [arguments]> [-? [ -e]]

实例

procdump -c 70 -s 5 -ma -n 3 w3wp

当系统CPU使用率持续5秒超过70%时,连续抓3个full dump。

Procdump outlook -p "\Processor(_Total)\% Processor Time" 80

当系统CPU使用率超过80%,抓取outlook进程的mini dump。

procdump -ma outlook -p "\Process(Outlook)\Handle Count" 10000

当outlook进程handle数超过10000时抓取full dump

procdump -ma 4572

直接生成进程号位4572的full dump。

运行效果

以下是通过一个测试页面在w3wp进程中造成high cpu时运行ProcDump命令的效果。可以看到在系统CPU每次持续5秒达到70%后就会生成相应的dump文件。

  

注意

  • Procdump需要进程已经启动,并且中途不能停止。比如需要抓取IIS Worker Process的High CPU Dump,由于IIS Worker Process默认会配置Idle Timeout = 20 min,即该进程在20分钟内没有任何请求的话就会自动结束,这种情况下ProcDump也会自动结束。需要重新运行命令。因此如果目标程序存在这样的配置,需要暂时将该配置取消。
  • 有些系统管理员希望能够运行该工具后退出用户session,ProcDump是做不到的,如果有这种需求可以考虑使用debugdiag
  • 在调试High CPU问题的时候经常用到的一个命令是!runaway,但是有些时候!runway在ProcDump抓取的dump中提取不出来。解决的方法是将Debug Tools for Windows (windbg)安装目录下的dbghelp.dll拷贝到procdump目录下,然后再运行命令抓取dump。 
    0:000> !runaway ERROR: !runaway: extension exception 0x80004002.     
    "Unable to get thread times - dumps may not have time information"

     

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值