常见windows2003服务器上IIS占用CPU资源100%的解决办法
以下是方案1: 现象:机器正在调试或允许IIS时,被异常中断服务(比如停电),然后再次IIS运行页面时,CPU资源占用100%,即使重新启动也无效。 原因:发生中断时,IIS会写异常日志,但是此时写入了乱码,造成IIS一直写日志的死循环,耗尽了系统资源。找到系统路径\System32\Logfiles\W3SVC1?下当天的错误日志文件,即可看到以上内容。 解决:删除?系统路径\System32\Logfiles\W3SVC1?下当天的错误日志文件,如:ex060904.log,然后重新启动IIS即可。 |
以下是方案2: 环境:win2003server+IIs+ASP+MSSQL 现象:每隔一段时间(不定,有时几分钟,有时半小时)出现一次网站打开非常缓慢,甚至有时会出现超时打不开站点,此时查看服务器端的进程,CPU占用率达到100%,其中w3wp占用70~80%,SQL占用20~30%。所有服务器端的操作也变得缓慢 初期解决方法:每次现象出现时,立即登录服务器直接结束w3wp进程或重启IIS服务,平均每天约十次操作,由于服务器存放于远程机房,所有操作都是远程控制进行,有时会因此出现远程无法连接登录的情况,只能通过电话通知机房管理人员重启服务器解决,此过程导致用户抱怨不断 经过网上查阅资料,发现此类现象多数由于网页代码不合理所致,以下情况会导致此类现象发生: 1、代码中多处使用application、seesion等服务器缓存,导致服务器资料过度占用; 2、代码有不合理语法,死循环等; 3、数据库损坏,尤其是ACCESS数据库; 4、装过多第三方软件或插件,与IIS或网页功能代码冲突。 第一阶段排查:根据查阅到的参考资料逐项分析 1、服务器上所有站点代码均为公司设计人员自行编写,可证实并无过多调用服务器缓存语法(排除) 2、代码是否存在不合理语法(不确定) 3、根据情况来看,IIS进程占用率升高时,SQL占用率同时升高,应为SQL数据库的站点,根据现象判断,库或表应该正常,估计是数据方面可能有误;(不确定) 4、服务器端除了基本的系统服务,防杀毒及网站运作必备服务之外,并无多余第三方软件,机率不大(排除)。 经过以上分析判断,将不确定项连起来得出的结论是:某个采用了SQL数据库的网站网页代码存在不合理语法,导致IIS和SQL进程CPU占用率过高。 第二阶段排查: |
以下是方案3: 在IIS6下,经常出现w3wp.exe的内存及CPU占用不能及时释放,从而导致服务器响应速度很慢。 解决内存占用过多,可以做以下配置: 解决CPU占用过多: 根据w3wp取得是那个一个应用程序池: |