以下是方案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或网页功能代码冲突 。
第一阶段排查:根据查阅到的参考资料逐项分析
【windows2003server密钥 windows2003】1、服务器上所有站点代码均为公司设计人员自行编写 , 可证实并无过多调用服务器缓存语法(排除)
2、代码是否存在不合理语法(不确定)
3、根据情况来看 , IIS进程占用率升高时 , SQL占用率同时升高 , 应为SQL数据库的站点 , 根据现象判断 , 库或表应该正常 , 估计是数据方面可能有误;(不确定)
4、服务器端除了基本的系统服务 , 防杀毒及网站运作必备服务之外 , 并无多余第三方软件 , 机率不大(排除) 。
经过以上分析判断 , 将不确定项连起来得出的结论是:某个采用了SQL数据库的网站网页代码存在不合理语法 , 导致IIS和SQL进程CPU占用率过高 。
第二阶段排查:
确定范围 , 接着继续把范围缩小 。
由于服务器上采用SQL数据库的站点并不多 , 便于建立独立进程ID来观察 , 将所有采用SQL数据库的站点在IIS管理器中分别建立独立的应用程序池 , 然后通过CMD界面输入:iisapp -a 命今查看并记录下各IIS池的进程ID号 , 通过多次现象重现时的观察 , 有个IIS进程ID是导致此次问题的罪魁祸首 。
以下是方案3:
在IIS6下 , 经常出现w3wp.exe的内存及CPU占用不能及时释放 , 从而导致服务器响应速度很慢 。
解决内存占用过多 , 可以做以下配置:
推荐阅读
- Windows2003网络服务器安全攻略 server2003本地安全策略
- 部署Windows2003的DHCP服务 windows2012搭建dhcp服务器
- 如何删除Windows2003的wmpub文件夹
- windows2003server windows2003
- windows2003 windows2003是win7吗
- Windows2003域的企业应用案例
- 在windows2003系统中实现释放系统内存的快速方法
- windows2003系统中快速释放系统内存的快捷方法
- windows2003 windows2003server
- windows2003上rman写入远程的方法