博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

关于w3wp.exe进程cpu占有率高的分析

Posted on 2007-07-20 17:57  大胸宝腚  阅读(1089)  评论(0)    收藏  举报

在系统或者开发VS时,w3wp.exe进程cpu占有率一直占用最高,基本上维持在60%-100%之间,w3wp.exe进程在瞬间上升到100%是可能的,但是一直占用维持在60%-100%之间,这个肯定不正常;

下面我们首先看下w3wp.exe进程是什么:

出品者: Microsoft
属于: Microsoft Web Server

系统进程:
后台程序:
使用网络:

硬件相关:
常见错误: 未知N/A

内存使用: 未知N/A

安全等级 (0-5): 0

间谍软件:
Adware:
病毒:
木马:

上面是Microsoft对w3wp.exe进程的解释,但是不能解决我们的问题,我们是要降低w3wp.exe的占用率,以提高网站的访问速度。

接着我就先BAIDU后GOOGLE,找解决办法。

下面是我在网上找到的解决办法:

在IIS6下,经常出现w3wp的内存占用不能及时释放,从而导致服务器响应速度很慢。
今天研究了一下,可以做以下配置:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。同时,设置同时运行的w3wp进程数目为1。再设置当内存或者cpu占用超过多少,就自动回收内存
一般来说,这样就可以解决了。但仍然会出现个别网站因为程序问题,不能正确释放。
那么,怎么样才能找到是哪一个网站的?
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池
3、到iis中察看该应用程序池对应的网站,就ok了

我按照上面的设置依然不能解决问题!

就在这时我的同事提醒我,是不是有某个网站查看网页内容的请求数量太大导致w3wp.exe进程cpu占有率居高不下,为了快点解决问题,我就采取排除法来找出这个站点,然后在针对的解决问题。

根据上面的办法,我就逐个关闭服务器的站点,当关闭到其中的一个站点时w3wp.exe进程的cpu占有率一下就降下来了(看来这个办法奏效)

经查这个网站是使用的织梦cms,可以在后台自动生存html页面,而他的网站自动生存html页面时出错,导致出现死循环链接,一直占用服务器资源,至此问题解决!!!

后在网上查资料还有下面的问题会导致w3wp.exe进程的cpu占有率高的问题:

1、出现死循环链接;

2、ACCESS数据库出现错误;