Asp.net IIS w3wp.exe占CPU100%的排查方案
2021-03-02 23:29
标签:too net open 电脑 tac nbsp stack soft tool 最近应用偶发性的出现cpu100%占用过高的报警,因为项目比较大,流程涉及非常多,地毯式排查已经不可能。 解决办法目前来看最快捷的莫过于WinDbg分析dmp文件。下面详细步骤介绍一下: 1、如何捕获dmp文件 两个办法,第一个可以通过阈值的方式,让服务器在cpu到达一定比例的时候,自动打印dmp文件,详细见: https://www.cnblogs.com/mamingbo/p/5656104.html 具体我们有实际操作过。 第二个办法,是直接在服务器cpu报警100%的时候,通过任务管理器,转存储文件为dmp 注意上面这步骤,可能会影响正在运行的生产环境,存储预估可能要1分钟左右 2、将dmp文件拷贝到自己本地电脑,同时在服务器对应目录下拷贝如下dll 所在位置:C:\Windows\Microsoft.NET\Framework?\version?\SOS.dll 同目录下(sos.dll clr.dll mscordacwks.dll 三个dll拷贝下来) dmp和dll拷贝到自己的本机备用,例如D:\dump\ 3、安装WinDbg,(https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debugger-download-tools) 4、开始分析调试,打开WinDbg,文件-->Open Dump File 加载刚刚的dmp文件 第一个命令:.cordll -lp D:\dump 指向刚刚的dll所在路径 第二个命令:!runaway,分析dmp文件 马上可以看到哪些进程是消耗Time最长的,时间越长占用的cpu时间越久,这样就可以分析那个线程的问题了。 例如上图中的,19:xxxx,23:xxxx,41:xxx是时间最长的线程,下一步进入到线程里,分析是那个方法导致的 5、定位问题,首先进入线程,命令:~19,意思是19这个线程。然后执行!clrstack,问题顿显,查看具体是哪个方法导致的。 6、至此分析结束,问题找到。同时你会发现.net framework 的GC真的是cpu大户,尽快转.net 5吧 Asp.net IIS w3wp.exe占CPU100%的排查方案 标签:too net open 电脑 tac nbsp stack soft tool 原文地址:https://www.cnblogs.com/qidian10/p/14295184.html
文章标题:Asp.net IIS w3wp.exe占CPU100%的排查方案
文章链接:http://soscw.com/index.php/essay/59262.html