前几天我朋友的服务器出了点问题。现象是iis经常停止响应,重启iis是正常的!经过一番努力解决问题,总结出方法和相关参考,供大家参考。
以下是一些人的服务器出现问题的现象。
1. server window2000 adv server cpu 4G memory 2G.
我们公司负责维护的asp程序经常停止响应。具体现象是服务器上的一个dllhost进程占用了大量内存,杀死后恢复正常。之前也发生过类似的现象,当时是根据日志查找错误页面并修改后解决问题的。
现在又出来了,iis日志里也很少报信息。你有更好的办法找出原因吗?
2.我们公司有一个web服务器,用的是win2000 iis asp sql server 7,现在已经运行了一个月左右。这样的情况发生了三次,就是用户浏览站的时候,ie表示已经找到web服务器。
然后我就停在这里打不开网页了;即使在服务器上浏览。当iis(不是windows)重新启动时,故障消失。
这个网站每天的浏览量在一万到两万之间。请问这可能是什么原因造成的?请问遇到故障有什么方法和工具帮助检测?
3,环境是:2000 adv server SP4升级到win2003并给我们所有的网站打了补丁,包括ASP access,php mysql,jsp mysql,
PHP sqlserver不知道什么时候什么原因,ASP无法执行,任务进程中dllhost.exe占用100多m内存,CPU只有2-3%。ASP不能访问,但是PHP可以。
只重启IIS!希望大家能帮我看看是什么问题。
4.win2003操作系统和局域网。运行一段时间后,会出现客户端打不开ASP页面的情况(其他如html、cgi、php都是正常的),但没有提示脚本超时。
这种情况一天之内会连续发生(2-3次左右),看似无规律。消除病毒的影响。以前只能通过重启来解决。但是最近发现,只要在iis6.0中右击应用池,选择“回收”,问题就解决了。
我现在想问的是为什么客户端打不开asp页面?“回收”它回收什么?回收后,检查日志中的以下内容:
事件类型:错误
Event Source: Active Server Page
事件类型:无
事件id: 5
日期:2003年11月24日
事件:22:13:13
用户:N/A
计算机:ABC
描述:
错误:应用程序池’DefaultAppPool’ 的模板永久性缓存初始化失败,这是由下列错误所导致: 无法创建应用程序池的磁盘缓存子目录。数据可能包含额外的错误代码。
这个问题我已咨询了很多网站,都没有办法解决,查看微软相关站点也没有解决。这里是我最后的希望了。拜托各位高手了。
原因及解决办法参考:
1、查看iis日志,分析日志!
2、优化ASP程序,这个问题一般是由ASP程序开发的不太好造成的。
3、设置一下所使用的应用程序池的属性,将回收工作进程、最大虚拟内存、最大使用的内存修改为适当的值。
这是Windows2003 IIS 特有,是IIS的应用程序进程池,可以设置在一定的时间之内回收进程池,也可以也让它达到了多少M之后回收它,要不过大了之后,就会程序变得缓慢,好像是死了一样,
打不开ASP程序啦!
你把它杀了之后,那就正常了!你可以在IIS的应用程序池里设置,让它在达到多少M之后回收,回收之后,所有用用户的进程(session,application)之类的都会没有了,必需要重新登录,
相当重启了IIS了。
也可以设置在什么时候回收进程池,可以设为上网人数较少的时候,比如说凌晨3点回收,那时候受影响的用户就没有这么多啦!
打开IIS,下面会有应用程序和站点这两项,打开一个网站,右击-〉属性-〉 在主目录下面有个属性,就是对应应用程序池,IIS6里每一个可以同用一个进程池,也可以同站一个进程池,一个进程池,
就是一个dllhost进程啦,如果说是大型网站的话,还是要设置一个独立的进程池,这样方便于管理. 如果说没有配置进程池,就是有一个默认的进程池,打开应用程序里,你就可以看到相对应的进程池,
然后右击查属性,里面的文字应该可以看得懂,由于网站的特点来设置就行啦, 找到了临时解决办法。适合WIN2003系统(IIS6),将每个应用程序设置不同的“应用程序池”即可。
比如:新闻系统用一个单独的应用程序池、论坛再用一个单独的应用程序池、音乐站点再用一个应用程序池。通过以上的方法,目前服务器还算稳定,偶尔(一般是N天)“回收”一下有问题的“应用程序池”就OK了。
其它说法:
原因很明确,就是因为访问的人量在服务器上生成的进程超过了服务器ISS的负荷!
有人说是盗版的原因,难道盗版的数据引擎有问题吗?不能确定。