现象:站点经常莫名其妙的卡住,无法访问,查看CPU,达到100%
打开服务器管理器->诊断->事件查看器->自定义视图->服务器角色->Web服务器(IIS),有一大堆的报错:
5002:应用程序池“xx2016”将被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误。
5010:为应用程序池“xx2016”提供服务的进程未能响应 Ping。进程 ID 是“9444”。
5011:为应用程序池“xx2016”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误。该进程 ID 为“4048”。数据字段包含错误号。
解决方案:
方案1:WinDbg
下载对应的x86 x64版本
http://www.windbg.org/
Symbol Server (Microsoft):
srv*c:\mss2*http://msdl.microsoft.com/download/symbols
打开dmp文件(在c盘中搜索wer关键字,一般在:C:\ProgramData\Microsoft\Windows\WER\ReportQueue),找出最大的两个文件分别载入
运行.reload /f(强制下载Symbols)
运行!analyze -v即可看到堆栈
方案2:Debug Diagnostic Tool
Debug Diagnostic Tool=>Advanced Analysis=>Add Data Files 引入mdmp和hdmp文件,点击Start Analysis
偶尔能够检测出死循环堆栈