转储文件分析

Mr.*_*. K 5 windows iis windbg crash-dumps debugdiag

最近我开始面对几个服务器上的问题,其中CPU开始消耗比平常趋势更多的资源.我试图找出这个的根本原因并从任务管理器转移w3wp进程(右键单击进程并进行转储).

现在dmp文件大小是14GB,我试图通过WinDBG分析它,但该工具无法正常工作并获取消息:
错误屏幕截图

我也拿了几个minidumps,但是其中一些打开很好,而很少不是这样,它与32位或64位之间的混淆无关.(收集的转储是64位).我想知道造成这个问题的原因.它是文件大小还是我没有正确地进行转储.
我检查了链接,但没有用.

mag*_*981 10

Windbg不适合这项工作.转储只是快照,所以你不知道之前发生了什么.使用ETW和CPU采样,它对所有调用进行求和,并详细显示CPU使用情况.

安装Windows性能工具包,它是Windows 10 SDK的一部分(V1607适用于Win8/8.1(Server2012/R2)和Win10或V1511 SDK,如果您使用的是Windows 7/Server2008R2)),运行WPRUi.exe并选择CPU Usage

在此输入图像描述

并按下Start.捕获1-2分钟的高CPU使用率,然后单击下一步Save.使用WPA.exe(Perf分析器)打开生成的ETL,将CPU Usage (Sampled)图形拖放到analysys窗格

在此输入图像描述

加载调试符号.现在在图表中选择您的流程,放大并展开堆栈,在这里您可以看到所有呼叫的CPU使用率

在此示例中,Internet Explorer的大部分CPU使用率来自HTML内容.

对于.NET应用程序,WPA会显示与.net相关的分组,如GC或JIT:

在此输入图像描述

展开w3wp进程的堆栈以查看它正在做什么.从名称中你应该知道会发生什么.

  • 再次遇到XY问题(http://meta.stackexchange.com/a/66378).使用我的技术来解决问题,而不是错误的工具windbg (2认同)