在一个aspnet_wp使用100% cpu的cpu服务器(Aspnet_wp)上,我遇到了一个问题。这个服务器上有几个网站。但是我怎么知道是哪个网站造成了这个问题呢?这些站点处于2.0框架中,服务器在IIS5隔离模式下运行。
发布于 2009-11-13 18:28:42
对于IIS6:在命令行中运行cscript c:\windows\system32\iisapp.vbs。它将转储每个应用程序池的PID,这样您就可以跟踪哪个应用程序池是固定的。
W3WP.exe PID: 12216 AppPoolId: A
W3WP.exe PID: 1632 AppPoolId: B
W3WP.exe PID: 8892 AppPoolId: CIIS7:appcmd apppool /?
发布于 2009-11-13 18:42:49
我使用了SysInternals processes (现在可以从微软网站中获得)来查看服务器上运行的所有进程。您可以进入选项来查看某些列并打开命令行,这将显示运行网站的应用程序池的名称。
我们为每个站点设置了单独的应用程序池,这样,如果一个站点崩溃,它不会把所有站点都毁了。您可以将每个站点隔离在它们自己的应用程序池中,然后使用该工具确定到底是哪个站点导致了问题。

发布于 2009-11-15 03:53:45
由于您使用的是IIS5隔离模式,所以很难判断哪个站点正在使用CPU。你不能把它和任务经理联系起来。
iisstate和Debug是两个可以帮助您的工具。如果您可以脱离IIS5隔离模式,那么每个应用程序池都会得到一个新的工作流程(w3wp.exe),从而更容易找到它。(在IIS7中,这再容易得多)
https://serverfault.com/questions/84846
复制相似问题