欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

IIS假死的解决方法 缩短IIS应用池回收时间来实现减少IIS假死

程序员文章站 2022-09-10 18:19:05
iis日志:   应用程序:isapi 'c:\windows\system32\inetsrv\asp.dll' 报告它自身有问题,原因如下: 'asp 不正常,因为执行...
iis日志:
  应用程序:isapi 'c:\windows\system32\inetsrv\asp.dll' 报告它自身有问题,原因如下: 'asp 不正常,因为执行请求的 100% 被挂起,而且请求队列已经使用了 0%。'。
  关于 server 2003+iis6 出现 'asp 不正常,因为执行请求的 100% 被挂起
现像如下:
  站点无法打开,或者打开很慢.html可以打开.重新启动或者回收应用程序池可恢复.但过一段时间又会出现
日志里会有:
  isapi 'c:\windows\system32\inetsrv\asp.dll' reported itself as unhealthy for the following reason: 'asp unhealthy because 100% of executing requests are hung and 6% of the request queue is full.'.
或者:
  isapi 'c:\windows\system32\inetsrv\asp.dll' 报告它自身有问题,原因如下: 'asp 不正常,因为执行请求的 100% 被挂起,而且请求队列已经使用了 0%。'。
解决方法:
  1.asp是否正确映射到 'c:\windows\system32\inetsrv\asp.dll'
  2.一般来讲,是由于在同属iis的应用程序池出现了某个站asp代码错误所致,使得内存耗尽,检查代码本身的问题.可以隔离到单独应用程序池调试
  3、减少应用程序池回收时间。默认为:1740。。可设为120(每2小时)
iis假死的原因:
  打开iis 你就会看到应用程序池,默认只有一个应用程序池,查看应用程序池的属性,会发现他的回收时间,默认多达,1740分钟,就是说,需要在1740分钟后才回收此应用程序池,如果在这个时间内,达到请求的最高限制,那么就会出现asp假死的情况,这个就是大型网站出现假死的情况,反而,小型网站确不会出现这样的情况,因为他请求少,流量少,还没达到限制数量。当然要看你的服务器上网站数目而定。
以下是解决方法:
  资料一
  单个网站解决方法:
  把应用程序池回收时间缩短到300-600分钟,其间回收过程中,需要占用一点cpu资源,没办法,为了稳定性,再把回收时间设为凌晨5点。
多网站解决方法:
  视服务器网站的多少,新建多个应用程序池,把每个池回收时间缩小到 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..经常去官方网站搜索资料是一个好习惯..还有就是经常性的访问日志..及注册表的用户还有加载运行的程序. 及服务也是一个好方法.