提问人:Mr. K 提问时间:2/20/2017 最后编辑:Thomas WellerMr. K 更新时间:3/21/2017 访问量:8047
Dump 文件分析
Dump File analysis
问:
最近,我开始在少数服务器上遇到问题,其中 CPU 开始消耗比平时更多的资源。我正在尝试找出造成这种情况的根本原因,并从任务管理器中获取了w3wp进程的转储(右键单击进程并进行了转储)。
现在 dmp 文件大小为 14GB,我正在尝试通过 WinDBG 对其进行分析,但该工具无法正常工作并收到消息:
我也拿了一些小型转储,但其中一些打开得很好,而很少则没有,所以这与 32 位或 64 位之间的混淆无关。(收集的转储为 64 位)。
我想知道是什么导致了这个问题。是文件大小还是我没有正确进行转储。
我检查了链接,但没有帮助。
答:
Windbg 不是此作业的正确工具。转储只是快照,因此您不知道之前发生了什么。使用 ETW 和此处的 CPU 采样,它对所有调用求和,并详细显示 CPU 使用率。
安装 Windows 10 SDK 中的 Windows Performance Toolkit(V1607 适用于 Win8/8.1(Server2012/R2) 和 Win10,如果使用 Windows 7/Server2008R2,则适用于 V1511 SDK),运行并选择WPRUi.exe
CPU Usage
并按 .捕获 1-2 分钟的高 CPU 使用率,然后单击 。使用 WPA.exe(性能分析器)打开生成的 ETL,将图形拖放到 analysys 窗格中Start
Save
CPU Usage (Sampled)
并加载调试符号。现在在图中选择您的进程,放大并展开堆栈,在这里您可以看到所有调用的 CPU 使用率的权重
在此示例中,Internet Explorer 的大多数 CPU 使用率都来自 HTML 内容。
对于 .NET 应用程序,WPA 显示与 .net 相关的分组,如 GC 或 JIT:
展开 w3wp 进程的堆栈,看看它正在做什么。从名字中,您应该知道发生了什么。
评论
!runaway
评论