【转】找出iis最占资源的站点

关于w3wp.exe进程cpu占有率高的分析 前两天,我管理的一台开放式的服务器平台(虚拟主机,上面有30个网站)出现网站访问非常慢的情况,公司让马上解决。

我远程登陆服务器查看,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数据库出现错误;



文章来自: 本站原创
Tags:
评论: 0 | 查看次数: 7442