1、下载ProcDump
打开windows命令行cmd,进入到包含procdunmp文件的路径下,对于32位系统打开procdump.exe,64位系统则打开procdump64.exe,执行以下命令
#-ma 抓取full dump
#-c 30代表cpu使用率应该在30%以上
#-s 1 这种情况持续1秒以上
#3 代表最多抓取3个dump文件
#9000代表线程id
procdump64 -ma -c 30 -s 1 -n 3 10728
输出以下内容,不要关闭命令行工具,procDump工具正在执行
2、下载WinDbg
下载 Windows 调试工具 - WinDbg - Windows drivers | Microsoft Docs
对于电脑上没有microsoft store的用户,可以从 SDK 获取 Windows 调试工具 (WinDbg)
安装完成后,打开WinDbg工具,可以根据自己的程序选择64位或者32位的
路径:C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe
查看iis中运行的是否是32位还是64位的程序
如果iis的应用程序池的高级设置中“启动32位应用程序”的值为True,那么程序就是32位的,需要打开32位的WinDbg
3、配置WinDbg
配置Symbol File Path
srv*c:\symbols*http://msdl.microsoft.com/download/symbols
配置Source File Path
项目的bin目录(完整路径)
3.打开dump文件
配置SOS.DLL,输入一下命令
load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.DLL
分析高CPU
按以下顺序执行命令
#查看哪个线程占用cpu时间较长
!runaway
#跳转到对应的线程
~1s
#看看这个线程再干嘛 执行那些方法,优化这些方法
!clrstack