IIS6 w3wp.exe进程占用cpu和内存过多的解决方法
在IIS6下,经常出现w3wp.exe的内存及CPU占用不能及时释放,从而导致服务器响应速度很慢。
解决CPU占用过多:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭。
根据w3wp取得是哪一个应用程序池:
1、在任务管理器中增加显示pid字段(任务管理器>查看>选择列>PID(进程标识符))。就可以看到占用内存或者cpu最高的进程pid。
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池。(iisapp实际上是存放在C:\windows\system32目录下的一个VBS脚本,全名为iisapp.vbs,如果你和我一样,也禁止了Vbs默认关联程序,那么就需要手动到该目录,先择打开方式,然后选“Microsoft (r) Windows Based Script Host”来执行,就可以得到PID与应用程序池的对应关系。)
3、到iis中察看该应用程序池对应的网站,就ok了,做出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题。
解决内存占用过多,可以做以下配置:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。再设置当内存占用超过多少(如500M),就自动回收内存。
我的设置如下:
首先是对CPU的限制:在启用cpu监视后,我设置该应用程序池最大的cpu使用率为50%。设置刷新cpu时间为1分钟,设置操作为“关闭”。最大工作进程数设置为1。这个意思是,IIS刷新检测该独立池的CPU使用情况时间为1分钟,如果超过设置的cpu限制50%,就会发出关闭池的指令,要求池在指定的时间内关闭。如果池成功在这个时间内关闭,IIS会重启动一个新池,此段时间很短,一般不会有什么感觉,池就重新开启了,对于访问网站的人基本是不会有感觉的。但如果池没有在指定时间内关闭,IIS就会强行关闭它一个刷新CPU时间。在这个停止的时间内,网站无法访问,提示“Service Unavaliable”。
关闭时间和启动时间间隔设置:设短一些比如10秒,这样当您的网站程序大量占用系统资源时IIS自动快速回收进程并且快速启动进程,您的网站暂时还可以将就着工作。
对内存的限制及进程回收时间的设置:我设置为内存占用超过800M就自动回收内存,虚拟内存没有做限制。进程回收时间我保持默认没有修改。各位可以根据自己的情况设置更短的时间。对应用程序池最大虚拟内存也可以在此进行设置,超过了设置的最大虚拟内存,该池会就被回收。
最后综合落伍wlmmc的一些经验,总结一些需要注意的问题:
1、要限制一个站点的CPU使用,必须将该站点设置为独立应用程序池,共用应用程序池是无法限制单个站点的。IIS独立应用程序池,就需要独立的进程,非常消耗内存。独立池越多,就有越多的W3WP进程。对于每个站点均要独立应用程序池的服务器,在一般的普通P43.0 2G内存 的普通服务器上,建议不要超过50个站点,最好30以内,不然服务器压力非常大。在配置上,我一般把资源消耗较大的网站独立一个池,一般普通BBS或者生成HTML的系统大概5个站一个池。普通网站以及一些企业站点均共用一个池。
2、在服务器硬件允许的情况下,一般不要限制站点内存使用,这样能够保证网站运行,不会出现用户掉线情况。需要限制某站的最大虚拟内存不要小于64M,不然可能出现一些未知的错误。
3、这些都不是根本解决办法,它的根本问题是网站程序有问题,要解决根本问题还要从程序查起。根据本文开头提到的方法查到具体的应用程序池,找到使用此应用程序池的网站,解决网站程序存在的问题,如死循环之类。
4、除了w3wp.exe, 在调用数据库进行大量查询操作的时候,也会大量占用CPU资源,这是难免的(数据库方面的语句及结构优化不在本文讨论范围之内)。个人认为,只要不是CPU长时间占用100%, 一般在75%左右都是正常的。
相关文章
- 在IIS6中,创建一下test.asp;jpg的文件,是可以直接执行的...2016-01-27
- 无废话图文教程,教你一步一步搭建CA服务器,以及让IIS启用HTTPS服务,需要的朋友可以参考下...2017-07-06
- 这篇文章主要介绍了JavaScript获取当前cpu使用率的方法,涉及JavaScript针对系统硬件操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2015-12-17
- WebDeploy 是微软开发的用于IIS管理的简单应用程序。WebDeploy通过简单的命令行脚本实现部署在IIS6上应用程序向IIS7应用服务器转移、IIS6应用服务器之间的同步,以及IIS7应用服务器之间的同步等。...2016-01-27
windows2003 IIS6配置PHP和MySql数据库
首先保证window2003 SP2系统和IIS6,以及下载好PHP5压缩包和MySql5版本安装包...2016-01-27- 2003iis碰见的一些问题,只要对着症状处理。服务器一定可以使用的...2016-01-27
- php5开始支持fcgi模式,而微软也对php抛出了橄榄枝,此举大大提升php在windows平台的稳定性,废话少说,跟我来...2016-01-27
- 这篇文章主要介绍了IIS6 MVC4 路由失效 无法访问的解决方法,需要的朋友可以参考下...2016-01-27
XCache在Win2003 IIS6下的成功配置方法与疑难解答
XCache是一种新兴的php缓存器,在Windows下优化效率比同类软件强很多。...2016-01-27- 用户站点存放有RMVB、FLV类型的流媒体视频,在网页中显示404错误,提示无法找到文件,也不能够下载流媒体文件。 ...2016-01-27
Windows服务器上lsass.exe进程CPU使用率异常问题排查方法
这篇文章主要介绍了Windows服务器上lsass.exe进程CPU使用率异常问题排查方法,一般这个情况是发起了对外攻击造成的,也就是你的服务器可能已经沦为肉机,需要的朋友可以参考下...2016-01-27- windows 2003中IIS6的安全配置,需要的朋友可以参考下。...2016-01-27
- 这篇文章主要介绍了IIS7与IIS6之功能比较,需要的朋友可以参考下...2016-07-04
- 网上高手整理的一些win服务器下,ntfs的权限设置...2016-01-27
- 本次试用的是IIS6.0版本在Windows Service 2003上的安装过程...2016-01-27
- 在用IIS6架网站的时候遇到不少问题,有些是新出来的,做了很多次试验,结合以前的排错经验,做出了这个总结...2016-01-27
win2003 vps IIS6中添加站点并绑定域名的配置方法
这篇文章主要介绍了windows2003 VPS或服务器中 IIS6中添加站点并绑定域名设置教程,需要的朋友可以参考下...2017-07-06iis6和iis7限制上传文件(请求头)大小以及不支持FSO解决方法
今天运行asp的时候出错提示信息:Request 对象 错误 'ASP 0104 : 80004005',oUpFileStream.Write Request.BinaryRead 不允许操作,下面来简单的分享下...2016-01-27- 微软去年底发布了II6的FastCGI模块,今天将服务器上的PHP支持改成了FastCGI,目前运行稳定....2016-01-27
- IIS6默认情况下没有开启GZIP功能,需要我们手动配置,但他又没提供图形化配置功能...2016-01-27