最近我开始面对几个服务器上的问题,其中cpu开始消耗比平常趋势更多的资源.我试图找出这个的根本原因并从任务管理器转移w3wp进程(右键单击进程并进行转储).
现在dmp文件大小是14GB,我试图通过WinDBG分析它,但该工具无法正常工作并获取消息:
现在dmp文件大小是14GB,我试图通过WinDBG分析它,但该工具无法正常工作并获取消息:
我也拿了几个minidumps,但是其中一些打开很好,而很少不是这样,它与32位或64位之间的混淆无关.(收集的转储是64位).
我想知道造成这个问题的原因.它是文件大小还是我没有正确地进行转储.
我检查了link,但没有用.
解决方法
Windbg不适合这项工作.转储只是快照,所以你不知道之前发生了什么.使用ETW和cpu采样,它对所有调用进行求和,并详细显示cpu使用情况.
安装Windows性能工具包,它是Windows 10 SDK的一部分(Win8 / 8.1(Server2012 / R2)上的V1607 works和Win10或V1511 SDK,如果您使用的是Windows 7 / Server2008R2)),运行WPRUi.exe并选择cpu使用率
然后按开始.捕获1-2分钟的高cpu使用率,然后单击“保存”. Open the generated ETL with WPA.exe (Perf analyzer),将cpu Usage(Sampled)图形拖放到analysys窗格
现在在图表中选择您的流程,放大并展开堆栈,在这里您可以看到所有呼叫的cpu使用率的权重
在此示例中,Internet Explorer的大部分cpu使用率来自HTML内容.
对于.NET应用程序,WPA会显示与.net相关的分组,如GC或JIT:
展开w3wp进程的堆栈以查看它正在做什么.从名称中你应该知道会发生什么.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。