转:介绍一个好用的抓取dump的工具-ProcDump

时间:2021-11-01 23:16:41

介绍一个好用的抓取dump的工具-ProcDump

Procdump是一个轻量级的Sysinternal团队开发的命令行工具, 它的主要目的是监控应用程序的CPU异常动向, 并在此异常时生成crash dump文件, 供研发人员和管理员确定问题发生的原因. 你还可以把它作为生成dump的工具使用在其他的脚本中.

有了它, 就完全不需要在同一台服务器上使用诸如32位系统上的Debug Diag 1.1或是64位系统上的ADPlus了.

问题描述

===============

在任务管理器里发现w3wp.exe的CPU总在49%-60%左右, 间歇性地会下降一些. 我们需要在w3wp.exe的CPU在50%以上并能维持三秒钟的情形下抓取两组dump. 如果使用debug diag或adplus的话, 会比较困难, 因为这需要等待时机并手动抓取. 容易出现抓到的dump里不包含那些引发异常的动作的情况.

解决方案 - 救世主procdump

===============

Procdump可以很方便地帮助我们应付这种情况, 加速动作过程, 抓取正确数据集合. 它会指定的时间内监控目标进程的cpu, 并在那个点抓取一个内存快照(dump).

比如说:

procdump -ma -c 50 -s 3 -n 2 5844(Process Name or PID)
-ma 生成full dump, 即包括进程的所有内存. 默认的dump格式包括线程和句柄信息.

-c 在CPU使用率到达这个阀值的时候, 生成dump文件.

-s CPU阀值必须持续多少秒才抓取dump文件.

-n 在该工具退出之前要抓取多少个dump文件.

上面的命令行会监控w3wp.exe的CPU, 在CPU使用率超过百分之五十超过3秒的时候, 生成dump文件, 重复该动作两次.

参考
https://docs.microsoft.com/en-us/sysinternals/downloads/procdump
http://www.cnblogs.com/awpatp/archive/2010/12/20/1911122.html

示例:

在cmd中输入

d:\procdump64.exe -ma -c 90 -s 3 -n 1 8128

C:\Users\Administrator>d:\procdump64.exe -ma -c 10 -s 1 -n 2 4332

ProcDump v9.0 - Sysinternals process dump utility
Copyright (C) 2009-2017 Mark Russinovich and Andrew Richards
Sysinternals - www.sysinternals.com

Process: w3wp.exe (4332)
Process image: C:\Windows\SysWOW64\inetsrv\w3wp.exe
CPU threshold: >= 10% of system
Performance counter: n/a
Commit threshold: n/a
Threshold seconds: 1
Hung window check: Disabled
Log debug strings: Disabled
Exception monitor: Disabled
Exception filter: [Includes]
*
[Excludes]
Terminate monitor: Disabled
Cloning type: Disabled
Concurrent limit: n/a
Avoid outage: n/a
Number of dumps: 2
Dump folder: C:\Users\Administrator\
Dump filename/mask: PROCESSNAME_YYMMDD_HHMMSS
Queue to WER: Disabled
Kill after dump: Disabled

Press Ctrl-C to end monitoring without terminating the process.

[16:42:21] CPU: 10% 1s (Trigger)
[16:42:21] Dump 1 initiated: C:\Users\Administrator\w3wp.exe_180408_164221.dmp
[16:42:25] Dump 1 writing: Estimated dump file size is 495 MB.
[16:42:43] Dump 1 complete: 495 MB written in 21.6 seconds
[16:42:45] CPU: 29% 1s (Trigger)
[16:42:45] Dump 2 initiated: C:\Users\Administrator\w3wp.exe_180408_164245.dmp
[16:42:48] Dump 2 writing: Estimated dump file size is 490 MB.
[16:42:53] Dump 2 complete: 491 MB written in 8.3 seconds
[16:42:53] Waiting for dump to complete...
[16:42:54] Dump count reached.

扩展阅读

利用windbg查找dictionary导致IIS占CPU100%案例分析(一)

转:介绍一个好用的抓取dump的工具-ProcDump的更多相关文章

  1. 好用的抓取dump的工具-ProcDump

    Procdump是一个轻量级的Sysinternal团队开发的命令行工具, 它的主要目的是监控应用程序的CPU异常动向, 并在此异常时生成crash dump文件, 供研发人员和管理员确定问题发生的原 ...

  2. 你需要知道的 N 种抓取 dump 的工具

    原总结注册表debug调试dump转储文件windbgprocdump 前言 今天,向大家介绍几种可以抓取应用程序转储文件的工具及基本使用方法.更详细的用法,请参考每个工具对应的帮助文档.如果你还不清 ...

  3. python实现一个栏目的分页抓取列表页抓取

    python实现一个栏目的分页抓取列表页抓取 #!/usr/bin/env python # coding=utf-8 import requests from bs4 import Beautifu ...

  4. 抓取Dump文件的方法和工具介绍

    一.Windows系统的任务管理器里抓dump 启动任务管理器,选中某个进程,右键,弹出菜单"创建转储文件" 注意事项: 当你在64位Windows系统上抓32位进程的dmup文件 ...

  5. WinDbg-如何抓取dump文件

    这要分两种情况:第一种情况:如果是Vista或者是Windows2008操作系统就是一个简单的事情,在任务管理器中,切换到"进程"选项卡,右键点击你想要创建dump文件的进程,然后 ...

  6. 使用ProcDump工具抓取dump

    首先得到要抓取的进程号 cd %windir%\syswow64\inetsrvappcmd list wp得到pid之后, 在任务管理器里发现w3wp.exe的CPU总在49%-60%左右, 间歇性 ...

  7. IIS崩溃时自动抓取Dump

    背景:在客户现场,IIS有时会崩溃,开发环境没法重现这个bug,唯有抓取IIS的崩溃是的Dump文件分析. IIS崩溃时自动抓取Dump,需要满足下面几个条件 1.启动 Windows Error R ...

  8. 抓取dump

    1,在程序奔溃前部署.adplus.exe -crash -pn explorer.exe -o d: -crash:当进程挂掉的时候抓取dump,只能抓取到进程报错时的信息,如果进程不报错,就无法抓 ...

  9. [Java]使用HttpClient实现一个简单爬虫,抓取煎蛋妹子图

    第一篇文章,就从一个简单爬虫开始吧. 这只虫子的功能很简单,抓取到”煎蛋网xxoo”网页(http://jandan.net/ooxx/page-1537),解析出其中的妹子图,保存至本地. 先放结果 ...

随机推荐

  1. C# C++联调

    http://jingyan.baidu.com/article/fcb5aff7926344edab4a714d.html

  2. 重命名nginx服务器

    为了防止被黑客扫描到web服务器信息,通过相对应的web服务器信息找出对应的版本漏洞,从而对web服务器进行入侵,nginx虽然功能强大,但是也是软件,软件就可能会有漏洞,例如nginx-0.6.32 ...

  3. 在一个工程管理多个应用-b

    Demo:http://download.csdn.net/detail/u012881779/9166527 本文的产生是因产品经理提出的特殊需求: 一个针对多所学校的应用,对不同学校需要分别使用一 ...

  4. sql server根据日期或者月份查询聚合数据

    /*****************************根据时间查询每天的数据***************************************/ @tm_start:开始时间 @tm ...

  5. mvp框架

    本文在于巩固基础 mvp框架的概念: MVP是MVC模式的另一个变种,MVP即可以应用到WEB项目中, 也可以应用到Winform项目中,它的方便的测试机制为大型复杂的企业级应用带来了福音,MVP模式 ...

  6. layer弹出层

    最近因为项目要求做了一个layer弹出层demo,先看效果图 好了,现在开始上代码 index.jsp <%@ page language="java" import=&qu ...

  7. 原生 JavaScript 实现扫雷

    学习了这么长时间的 JS,不能光看不练,于是就写了个小游戏练习一下.因为自己还是个菜鸟,所以有错误的话还请各位大佬多多指点,谢谢啦~ 如果感兴趣的话可以试试:Demo 项目地址:game-mineSw ...

  8. 学习一下sticky-footer

    什么是sticky-footer? 当页面长度不够长的时候,页脚粘贴在视窗底部:如果页面足够长时页脚会被内容向下推送. 实现方式: 1.负margin布局方式 给内容div加一个父div,设置父div ...

  9. GemFire 入门篇2:GemFire 8&period;2 在CentOS &amp&semi; Mac OS X的安装步骤

    GemFire目前已经开源,开源项目的主页:http://geode.incubator.apache.org/,商业版本的主页:https://pivotal.io/big-data/pivotal ...

  10. &lbrack;Redis&rsqb;Redis的数据类型

    存储String字符串,使用get,set命令,一个键最大存储512M 存储Hash哈希,使用HMSET和HGETALL命令,参数:键,值 例如:HMSET user:1 username taosh ...