当前位置:编程学习 > Web> 正文

IIS假死的原因

时间:2013-12-5类别:编程学习

IIS假死的原因

IIS假死的原因

IIS假死的解决方法

 

一、原因:IIS应用程序池的设置问题

解决方法:

Internet 信息服务(IIS)管理器->应用程序池->DefaultAppPool->右击属性


1、回收


(1)、回收工作进程(分钟):选中,值为1740
(2)、回收工作进程(请求数目):不选(原先设置为35000)
(3)、在下列时间回收工作进程:不填
(4)、消耗太多内存时回收工作进程:全不选。(2、3、4项可能避免了在访问量高的时候强制回收进程可能引发的服务器响应问题,导致iis假死不响应)
 

2、性能


只选中空闲超时20分钟。其他都不选。WEB园最大工作进程数为1(默认)。注意web园这里一定要保持默认,如果填写其他超过1的数字就会导致一些网站程序的后台程序打不开或者刷新不停。

原来的请求队列限制为4000,现在无限制。
 

3、运行状况
 

前两项都起用,是原来的默认设置。启动时间限制90秒,关闭时间限制180秒。

“关闭时间限制180秒”是必须的,因为进程关闭的时间,原来为90秒限制,是默认值,如果进程关闭时间超过90秒,则认为超时,从而出现:进程关闭时间超过了限制 日志,所以,适当延长这个时间,可以避免这种错误

 

二、原因:独立进程的 内存堆戋消耗完了,IIS不能创建更多的进程工作空间来处理


解决方法:


1. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC
2. 在Parameters键下新建一个DWORD项,名字为:UseSharedWPDesktop 值为1 重启IIS
 

三、原因:数据库连接无法释放

解决方法:


在连接串里加入以下语句

Pooling=true; MAX Pool Size=512;Min Pool Size=50;Connection Lifetime=30
 

 

IIS假死的其它可能的原因

 

1、服务器自身内存太小,网站运行当然需要使用到内存了,当内存不够的时候应用池也会死掉变成禁用。那么只有等内存全部释放出来才能恢复应用池了。出现这个情况:那么你就要考虑加内存或者检查到底是什么程序占用了内存了。比如MSSQL数据库,这个可是吃内存得大户啊,最好别和WEB服务器同时一个服务器上。内存不够上面 2点讲到的,是没办法操作了,也无法自动恢复。


2、ACCESS数据库太大或查询太多,这个也会出现把IIS拉死,解决方法;修复ACCESS数据库,或尽量少用ACCESS数据库,升级至sqlserver数据库;或者在技术方面革新,像现在有些网站系统,风讯、动易等cms;pjblog、zblog等博客程序,都支持生成静态功能.
 

3、不同网站用不同应用池:根据你自己实际情况而定,站点大的最好独立一个应用池,限制他的资源超过了自动回收,看上面(1)讲到的,这样就不影响其他站点。中型站点:多个网站共用一个应用池,比如5个站点用一个池,设置他资源时间等等。这样他们就算超资源了也不影响其他应用池的网站。
 

4、设置回收时间:很多人以为设置回收池越短越好,其实是错误的,每次回收当然是把内存回收回来了,但加重了一次服务器的负担,当服务器比较繁忙的时候,有可能导致其他应用池死。所以建议设置共1000就行了。其他独立池按照他网站流量而设置 可以设置600 也行,共用的不建议设置太短。
 

5、网站后台过不了多久自动退出又要重新登陆:这个情况就是你设置回收时间太短了,按照 6点设置吧。 不要设置什么20分、30分这样的,这样不好的。另外一个原因就是和站的响应设置时间有关,设置得稍长些。
 

标签:
上一篇下一篇

猜您喜欢

热门推荐