∈鱼杆 ---我的鱼塘

执着,坚定,友爱,勇敢(www.pumaboyd.com)Live Message

导航

W3WP进程CPU查看

Posted on 2008-12-04 17:12  ∈鱼杆  阅读(658)  评论(0编辑  收藏  举报

最近在查站点CPU过高的问题。首先存在的一个问题就是:如何定位哪一个网站占用CPU过高。查了资料,整理如下:

基本知识(IIS6)
一个W3WP进程不是对应一个站点,而是对应一个IIS应用程序池。所以如果我们要观察具体那一个站点占用了多少CUP,多少内存,就必须为每一个站点独立分配一个应用程序池。(对于应用程序池的应用还有很多好处,以后再具体介绍)

IIS6配置应用程序池

iis-apppool-web
从图中可以看到,有5个website,3个apppool。当所有网站都在运行,看到的就是3个w3wp进程,而不是5个w3wp。

在一般的部署中,都存在一个IIS运行多个web站点的情况,特别是对于小app应用更是如此。所以如果有些应用频繁的,还是单独一个应用程序池。这样也方便查找问题。

多个W3WP进程
iis-w3wp-web

2个w3wp, 怎么知道那个是我们要找的呢?

W3WP与应用程序池

cmd运行如下命令:(注意 C:\WINDOWS\system32 这是目录,这个是IIS6的命令)

C:\WINDOWS\system32>cscript iisapp.vbs

iisapp -a

iis-apppool-common

PID与CPU

可以看到PID 以及对应的 app-pool的相关信息。这样我只要找到PID的进程就可以查看信息了
在任务管理器中就可以看到相关performance信息了

iis-w3wp-web1

整个过程的推导公式如下: (*^__^*)
IIS6 => app-pool => PID => CPU%

基本上解决方法已经有了,等fuhua具体的观察结果,有空再做进一步的分析。