我正在尝试解决我们的一个网站问题导致CPU间歇性地出现问题。该站点位于Web服务器场中,并且在不同时间间歇性地跨所有服务器发生。导致峰值的过程是w3wp.exe。我已经检查了所有显而易见的事情,现在想要为w3wp.exe分析多组转储文件,这会导致峰值。
我正在尝试在指定的时间内达到指定的CPU阈值时自动生成w3wp.exe进程的转储文件。
我可以使用ProcDump.exe来执行此操作,如果它在PID(进程ID)更改之前被触发,它将起作用。
例如:
procdump -ma -c 80 -s 10 -n 2 5844
(其中5844是PID)
上面的命令将监视w3wp.exe,直到CPU达到80%,持续10秒,并且至少需要两次迭代才能完全转储。
问题:
我有多个w3wp.exe实例正在运行,因此我无法使用进程名称,我需要指定PID。每次回收App Pool时,PID都会更改。这会导致PID在我可以捕获多个转储文件之前更改。然后我需要在每个Web服务器上再次启动procdump。
我的问题:
即使在PID更改后,如何自动生成转储文件?
答案 0 :(得分:1)
来自Microsfot的USe DebugDiagnostic 2.0:https://www.microsoft.com/en-us/download/details.aspx?id=49924
它处理多个w3wp.exe进程。如果您需要通用解决方案,则必须编写脚本 - 例如https://gallery.technet.microsoft.com/scriptcenter/Getting-SysInternals-027bef71