转储文件分析

时间:2017-02-20 13:41:27

标签: windows iis windbg crash-dumps debugdiag

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

现在dmp文件大小为14GB,我试图通过WinDBG进行分析,但该工具无法正常工作并收到消息:
Error Screen Shot

我也拿了一些小型飞行器,但是有些小型飞机正常运行而少数不是这样,它与32位或64位之间的混淆无关。(收集的转储是64位)。 我想知道造成这个问题的原因。是文件大小还是我没有正确使用转储。
我检查了link,但没有帮助。

1 个答案:

答案 0 :(得分:10)

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

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

enter image description here

然后按Start。捕获1-2分钟的高CPU使用率,然后单击SaveOpen the generated ETL with WPA.exe (Perf analyzer),将CPU Usage (Sampled)图表拖放到analysys窗格

enter image description here

load the Debug Symbols。现在在图表中选择您的流程,放大并展开堆栈,在这里您可以看到所有呼叫的CPU使用权重

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

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

enter image description here

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