自从入职众生网络以来,发现不少客户都会遇到服务器IIS出现假死的情况。为了能更好的为客户服务,我查找了一些解决IIS假死的办法仅供大家参考。
打开IIS 你就会看到应用程序池,默认只有一个应用程序池,查看应用程序池的属性,会发现他的回收时间,默认多达,1740分钟,就是说,需要在1740分钟后才回收此应用程序池,如果在这个时间内,达到请求的最高限制,那么就会出现ASP假死的情况,这个就是大型网站出现假死的情况,反而,小型网站确不会出现这样的情况,因为他请求少,流量少,还没达到限制数量。当然要看你的服务器上网站数目而定。
单个网站解决方法:
把应用程序池回收时间缩短到300-600分钟,其间回收过程中,需要占用一点CPU资源,没办法,为了稳定性,再把回收时间设为凌晨5点。
多网站解决方法:
假设一台服务器目前拉了70个网站左右,那么可以新建六个应用程序池,把每个池回收时间缩小到300分钟,然后再分配每个池10个网站左右(这个分配是要求你的网站访问量所定)如果某个网站,访问量大,就单独给他一个程序池,但是这样做的后果就是需要大内存,一个池现在占用120M内存左右,反正内存大,没关系。那么多网站如何分配应用程序池,打开IIS--查看你要分配的网站属性,,查看主目录--在下面 你就会看到应用程序池了,分配一个就行了。
大家在使用iis6时如果装了动网论坛肯定有出现过iis6假死现像就是asp网页打开慢但是iis却是正常的静态网页打开速度一样这时候我一直是重启的方法查了官方的资料结果没有据官方资料说win2003很快就要打这个补丁了是iis6对access驱动支持不理像也算是一个bug吧由于服务器虚拟主机多而且大多支持asp如果一旦假死就无法运行在多方面的资料查找下找到了一个比较简单的方法具体测试是通过了iis6自带数据应用程序池现在就利用他来解决假死
首先把bbs设一个单独的目录然后点击应用程序池新建应用程序池输入应用程序池id
然后把bbs的虚拟目录下面的就用程序池选择刚才新建的应用程序池
然后再回到刚才设好的应用程序池点击属性把回收工作进程数(分钟)及回收工作进程数还有在下列时间回收时间进程勾上然后在下列时间回收程序池里左边添加选择一个时间一般来说网站到凌晨3点的时候基本人都很少了这时回收一下bbs的进程数就可以解决了iis假死的现像
当然还可以配置其他信息比如说iis6的用户名 我们可以打开计处机管理然后打开计算机用户管理添加一个用户设置好后在应用程序池里面标识把添加的用户放上去用用户来测试回收的进程当然还有其他配置其实很简单只要你好好看一下就能明白意思
对于部分人来说这种方法可能不太方便所以可以用一个工具来回收应用程序池这样方便而且快捷个人用户当然不需要这种工具公司用户的话服务器压力挺大所以都用工具来解决一些问题所括iis的备分及虚拟主机ip的统一修改及端口访问的ip记录用批处理是一个很简单又方便的方法所以把一台服务器做的安全并不是哪么容易的事特别是iis经常去官方网站搜索资料是一个好习惯还有就是经常性的访问日志及注册表的用户还有加载运行的程序及服务也是一个好方法所以要学会如何遇到问题如何处理问题!!!!
首先要给WScriptShell权限,因为这个组件太危险,所以一般情况是禁止的,如果定时执行回收进程池可以计划任务中添加指定时间激发一个IISvbs(回收进程)
IISvbs代码如下
set WebAppPool = GetObject("IIS://LocalHost/w3svc/AppPools/DefaultAppPool")
WebAppPoolStop
WebAppPoolStart
set WebAppPool=Nothing
一、2003应用程序池自动死了,不能恢复了,一直出现 Service Unavailable 常见方法如下。
1:没有打SP1补丁的时候会出现这个IIS60假死问题,但现在微软都在自动更新里面出补丁了,一般你打好最新补丁后是不会出现此问题了。(所以现在的IIS假死与这个关系不是很大)
2:从IIS60开始CPU资源都在应用池里面限制了,不象以前的IIS5。所以假死的池的缘故就是池被拉死,你在网站打不开的时候可以看到你的某个应用池是禁用的,上面出现一个红叉。你鼠标右键启动网站又会自动恢复。 这个原因:大概是以下几个因数造成的。
(1):你限制了应用池的资源,限制得太小 比如:50这样或更少更多一点,这个时候如果你这个池下面的网站占用CPU太高,比如超过50% 那么5分钟后他就自动死了,手工默认建立的应用池默认是超过资源不 *** 作。
出现上面这个情况解决方法:1:不限制CPU资源,(这个是不可取的,不限制资源,有的程序有BUG占用资源厉害了的,服务器都会被拉死,你可能都无法 *** 作服务器。)2:在超过资源那里选择关闭,这个关闭默认是失败5次,90秒内恢复,一般默认就可。网站能自动恢复,这个关闭:不是永久关闭,意思是超过资源关闭,然后在某时间内自动恢复池。不 *** 作就是不恢复,这个是很多人的误区。
(2):内存限制 在IIS60应用池上面有虚拟内存和最大内存限制,如果你设置了这个。那么网站访问量大了 也会出现假死,所以不建议设置这里。默认就可。
3:就是服务器自身内存太小,网站运行当然需要使用到内存了,当内存不够的时候应用池也会死掉变成禁用。那么只有等内存全部释放出来才能恢复应用池了。出现这个情况:那么你就要考虑加内存或者检查到底是什么程序占用了内存了。比如MSSQL数据库,这个可是吃内存得大户啊,最好别和WEB服务器同时一个服务器上。很多人用1G内存做 2003系统,2003NET结构是很占用内存的,所以做服务器选2003还得把内存加到2G或更高才好。 内存不够上面 2点讲到的,是没办法 *** 作了,也无法自动恢复。
4:就是ACCESS数据库太大或查询太多,这个也会出现把IIS拉死,解决方法;修复ACCESS数据库,或尽量少用ACCESS数据库,升级至sqlserver数据库;或者在技术方面革新,像现在有些网站系统,风讯、动易等cms;pjblog、zblog等博客程序,都支持生成静态功能
5:不同网站用不同应用池:根据你自己实际情况而定,站点大的最好独立一个应用池,限制他的资源超过了自动回收,看上面(1)讲到的,这样就不影响其他站点。中型站点:多个网站共用一个应用池,比如5个站点用一个池,设置他资源时间等等。这样他们就算超资源了也不影响其他应用池的网站。
6:设置回收时间:很多人以为设置回收池越短越好,其实是错误的,每次回收当然是把内存回收回来了,但加重了一次服务器的负担,当服务器比较繁忙的时候,有可能导致其他应用池死。所以建议设置共1000就行了。其他独立池按照他网站流量而设置 可以设置600 也行,共用的不建议设置太短。
7:网站后台过不了多久自动退出又要重新登陆:这个情况就是你设置回收时间太短了,按照 6点设置吧。 不要设置什么20分、30分这样的,这样不好的。另外一个原因就是和站的响应设置时间有关,设置得稍长些。
8:windows 2003系统iis6访问本机的站点时提示“Service Unavailable”;
查看iis的应用程序池,状况提示为:未指定错误,同时应用程序池自动停止运行;
方法一
using System;
using System Data;
using System Configuration;
using System Collections;
using System Web;
using System Web Security;
using System Web SessionState;
using System Timers;
using System Net;
using System IO;
using System Text;
using System Threading;
namespace
{
public class Global : System Web >
以上就是关于服务器iis假死的原因是什么呢全部的内容,包括:服务器iis假死的原因是什么呢、如何在asp 页面用 asp 代码回收iis 应用程序池、IIS应用程序池老是自动停止求助等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)