Dump 文件分析

Dump File analysis

提问人:Mr. K 提问时间:2/20/2017 最后编辑:Thomas WellerMr. K 更新时间:3/21/2017 访问量:8047

问:

最近,我开始在少数服务器上遇到问题,其中 CPU 开始消耗比平时更多的资源。我正在尝试找出造成这种情况的根本原因,并从任务管理器中获取了w3wp进程的转储(右键单击进程并进行了转储)。

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

Error Screen Shot

我也拿了一些小型转储,但其中一些打开得很好,而很少则没有,所以这与 32 位或 64 位之间的混淆无关。(收集的转储为 64 位)。 我想知道是什么导致了这个问题。是文件大小还是我没有正确进行转储。
我检查了链接,但没有帮助。

Windows IIS WinBG 故障转储 debugdiag

评论

0赞 IInspectable 2/20/2017
“是文件大小吗” - 可能不是。所有受支持的 Windows 版本都允许读取大于 4 GB 的文件。“我没有正确接收转储” - 我们不知道您是如何生成转储文件的,因此我们无法知道。
0赞 EdChum 2/20/2017
这是一个 32 位应用程序吗,如果是这样,您需要使用 32 位任务管理器使转储看到:blogs.msdn.microsoft.com/amb/2011/05/12/...
0赞 Mr. K 2/20/2017
它是 64 位应用程序。转储来自任务管理器。只是为了测试,我在我的测试环境中遵循了相同的过程,并转储了 800 MB,该转储可以正常打开。
1赞 magicandre1981 2/27/2017
您是否尝试过 WPR/WPA 来分析 CPU 使用率?您是否能够检测到导致 CPU 使用率的原因?
1赞 Mr. K 3/1/2017
@ThomasWeller,这不是重复的问题。因为以相同的方式在同一台机器上进行相同进程的转储,但很少有转储正在打开,很少有没有。

答:

11赞 magicandre1981 2/21/2017 #1

Windbg 不是此作业的正确工具。转储只是快照,因此您不知道之前发生了什么。使用 ETW 和此处的 CPU 采样,它对所有调用求和,并详细显示 CPU 使用率。

安装 Windows 10 SDK 中的 Windows Performance Toolkit(V1607 适用于 Win8/8.1(Server2012/R2) 和 Win10,如果使用 Windows 7/Server2008R2,则适用于 V1511 SDK),运行并选择WPRUi.exeCPU Usage

enter image description here

并按 .捕获 1-2 分钟的高 CPU 使用率,然后单击 。使用 WPA.exe(性能分析器)打开生成的 ETL,将图形拖放到 analysys 窗格中StartSaveCPU Usage (Sampled)

enter image description here

加载调试符号。现在在图中选择您的进程,放大并展开堆栈,在这里您可以看到所有调用的 CPU 使用率的权重

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

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

enter image description here

展开 w3wp 进程的堆栈,看看它正在做什么。从名字中,您应该知道发生了什么。

评论

0赞 Steve Johnson 2/21/2017
良好的反响。我只是想补充一点,如果你有无限循环,有时你可以通过跑步来度过难关。但是,我并不反对你在这里所说的任何事情。!runaway
0赞 Mr. K 2/21/2017
谢谢@SteveJohnson但在这里我尝试打开一个 dmp 文件,而不是找出另一种方法来拍摄服务器快照。
3赞 magicandre1981 2/22/2017
您再次遇到 XY 问题 (meta.stackexchange.com/a/66378)。使用我的技术来解决问题,而不是错误的工具windbg