zoukankan      html  css  js  c++  java
  • 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"
  • 相关阅读:
    机器视觉会议以及牛人
    转图像偏微分方程不适定问题
    浅析点对点(End-to-End)的场景文字识别(图片文字)
    图像处理数学方法
    计算机视觉代码合集
    计算机视觉与模式识别代码合集第二版one
    计算机视觉与模式识别代码合集第二版two
    计算机视觉与模式识别代码合集第二版three
    计算机视觉、模式识别方面稍微容易中的期刊
    C#6.0 VS2015
  • 原文地址:https://www.cnblogs.com/developersupport/p/procdump.html
Copyright © 2011-2022 走看看