最近,我开始面临着几台服务器可以在CPU启动比平时耗费的趋势更多的资源问题。 我试图找出这一根本原因,并采取了从任务管理器w3wp进程的转储(右键单击进程,并采取了转储)。
现在dmp文件大小为14GB,我试图去分析它通过WinDBG的,但该工具不能正常工作和获取信息:
我也参加了一些小型转储,但同时一些不那么它不是32位或64位之间的关系混淆他们中的一些开放的罚款。(收集转储是64位)。 我想知道是什么导致了此问题。 它是文件大小或我不正确服用转储。
我检查的链接 ,但它没有帮助。
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(逆足分析仪)生成的ETL ,拖放CPU Usage (Sampled)
图表到观窗格
和加载调试符号 。 现在,在图形中选择你的过程,放大和扩展堆栈,在这里你可以看到所有调用的CPU使用率的重量
在从Internet Explorer这个样本大部分CPU使用率来自HTML的东西。
对于.NET应用程序WPA显示你的.NET相关分组像GC或JIT:
展开w3wp进程的堆栈,以了解它在做什么。 从名字你应该有一个线索会发生什么。