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