即使PID更改,当达到CPU阈值时自动生成w3wp.exe进程转储文件

phi*_*hil 5 pid w3wp procdump

我正在尝试解决我们的一个网站问题导致CPU间歇性地出现问题.该站点位于Web服务器场中,并且在不同时间间歇性地跨所有服务器发生.导致峰值的过程是w3wp.exe.我检查了所有显而易见的事情,现在想要为w3wp.exe分析多组转储文件,这会导致峰值.

我正在尝试在指定的时间内达到指定的CPU阈值时自动生成w3wp.exe进程的转储文件.

我可以使用ProcDump.exe来执行此操作,并且它可以在PID(进程ID)更改之前触发它.

例如:( procdump -ma -c 80 -s 10 -n 2 5844其中5844是PID)

  • -ma写入包含所有进程内存的转储文件.默认转储格式包括线程和句柄信息.
  • -c CPU阈值,用于创建进程转储.
  • -s连续秒秒必须在转储写入之前命中CPU阈值(默认值为10).
  • -n退出前要写入的转储数.

上面的命令将监视w3wp.exe,直到CPU达到80%,持续10秒,并且至少需要两次迭代才能完全转储.

问题:

我有多个运行w3wp.exe的实例,所以我不能使用进程名称,我需要指定PID.每次回收App Pool时,PID都会更改.这会导致PID在我可以捕获多个转储文件之前更改.然后我需要在每个Web服务器上再次启动procdump.

我的问题:

即使在PID更改后,如何自动生成转储文件?

mat*_*tra 2

使用 Microsfot 的 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