如何设置IIS程序池的回收时间,才能最大程度的减少对用户的影响

如何设置IIS程序池的回收时间,才能最大程度的减少对用户的影响,第1张

IIS的程序池默认回收间隔是1740分钟(29小时),在自动回收过程中,应用程序池将会清空,保留在内存中的数据将会被清理(相当于IIS重启)。对于互联网应用程序,为了减少数据库服务器的负担,也许会选择将大量数据暂存在内存中,回收会造成内存数据丢失,如果没有及时保存到数据库中,可能导致应用程序出问题。如果遇到系统使用高峰期,回收将可能导致一段时间应用程序无响应(出现假死状态),给予用户一种很不好的体验。

在优化应用程序池之前,我们应用先了解下程序池的几个配置信息:

IIS应用程序池

发生配置更改时禁止回收:如果为True,应用程序池在发生配置更改时将不会回收。

固定时间间隔(分钟):超过设置的时间后,应用程序池回收,为0意味着应用程序池不会按固定间隔回收。

系统默认设置的时间是1740分钟(29小时)。

禁用重叠回收: 如果为true,将发生应用程序池回收,以便在创建另一个工作进程之前退出现有工作进程。

请求限制: 应用程序池在回收之前可以处理的最大请求数。如果值为0,则表示应用程序池可以处理的请求数没有限制。

生成回收事件日志条目: 每发生一次指定的回收事件时便产生一个事件日志条目,里面的明细设置不一一介绍。

问题分析:每1740分钟(29小时)回收一次是否合理?

不太合理,这个周期内,有可能应用程序处于访问高峰期。因为每天的回收时间都是不一样的,很有可能在高峰期回收,就会造成短时间内网站访问出现问题。因此,要避免最大程度的减少对用户的影响,我们需要充分的分析应用程序的访问情况,例如哪个时间段是高峰,

哪个时间段访问人数最少。了解到这些后,应用程序部署人员就应该设定固定的回收时间,例如一个网站凌晨两点访问人数是最少的,那么它可以设置“特定回收时间”在凌晨两点,应用程序池里面的特定时间是支持设定多个的,请注意。

1.不同的站用不同的应用程序池.方法:应用程序池-新建-应用程序池-名称可自定义,然后设置,网站-属性-主目录-应用程序池,选择刚新建的应用程序池.

2.应用程序池优化.方法:应用程序池-选择要优化的那个程序池-属性-回收工作进程(分钟)设为200的.最大虚拟内存300,最大使用的内存150.大家可以根据网站需求做出一些调整.

3.IIS网站优化:A,网站-启用日志记录,勾掉,这功能没啥用.B,文档-默认内容文档,把除了网站首页文件名名称的其它内容文档删掉,因为每次访问网站首页的时候都要查询一下这个.C,网站-主目录-读取(勾上),索引资源(勾上),写入(勾上),主目录-配置-应用程序扩展,只保留网站需要扩展名,如ASP.PHP,其它的可以全部删呢.

4.WEB 服务扩展优化.有ASP程序网站的启用Active Server Pages,有PHP程序网站的启用PHP服务,没有则禁止,其它的服务扩展如不是自己设置的可以禁止.

5.GZIP 压缩.让网页体积变小,方法:WEB服务扩展-添加一个新的WEB服务扩展-扩展名就填写(GZIP)吧,这样好记些.-要求的文件-添加 C:\WINDOWS\system32\inetsrv\gzip.dll 一般就是这个路径,-设置状态扩展为允许.然后在返回网站-属性-服务-压缩应用程序文件(勾上),压缩静态文件(勾上),临时目录自己在硬盘设定一个,要有IIS_WPG 这个用户的完全权限.编辑C:\WINDOWS\system32\inetsrv目录下的MetaBase.xml文件.编辑文件的时候要暂停IIS Admin Service服务,用文本打开MetaBase.xml 搜索 IIsCompressionScheme 主要修改HcFileExtensions和HcScriptFileExtensions 后边的参数.

HcDoDynamicCompression="TRUE"

HcDoOnDemandCompression="TRUE"

HcDoStaticCompression="TRUE"

HcDynamicCompressionLevel="9"

HcFileExtensions="css

html

js

xml"

HcOnDemandCompLevel="9"

HcPriority="1"

HcScriptFileExtensions="asp

php"

注意啊.要修改相同的两处.

修改完成后,保存.然后重启IIS服务,或者重启器,就能看到效果呢.

先简单说一下

很多时候是由于网站空间服务器的配置

或者资源限制导致的不足以承受运行的情况

有些是买的时候

不知道有所限制

而不能满足程序的运营需求

最好是联系服务商查阅相关日志

对症下药

如果撑不住最好换机器

-----------------------------------------

出现这种情况是由于您的网站超过了系统资源限制(CPU或者IIS)造成的,

这个现象在WINDOWS2003+IIS6的环境下都会出现,主要是程序占用资源太多。

不同的程序占用的资源都不一样,这个跟程序设计的合理性和优化程度有关;

另外,一些死循环程序,或者不优化的程序都会占用太多的系统资源,而系统资源明显是有限的。

如果一个网站的程序占资源太多或者发生太多的错误,系统日志就会提示:“应用程序池

'User_pooll'

被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误,

或者提示:应用程序池

'User_pooll'

超过了其作业限制设置。

有关更多信息,请参阅微软官方

http://go.microsoft.com/fwlink/events.asp

的帮助和支持中心。

这时,访问这个网站就会提示:Service

Unavailable。

一般系统会在30秒左右恢复正常,多刷新几次就能正常访问了。但是这个时间恢复后因为访问量太大在极短的时间网站又不能上了。

另外,如果网站当前访问人数过多,超过了系统的iis连接数(或CPU峰值)限制,也会出现Service

Unavailable的提示(win2k主机下出现连接过多就会提示:连接过多,请稍后再试;而win2003的主机刚直接提示:Service

Unavailable)如果经常出现类似的错误,请及时优化网站程序,或者升级你的主机至更高的款型,以获得更多的系统资源。

网站超CPU的四种可能原因:

一.网站攻击

二.程序设计不合理,资源占用高,或本身在做占资源的 *** 作,如采集

三.访问量过大

四.有搜索蜘蛛收录

程序占用资源太多的原因:

有一个或多个ACCESS数据库在多次读写过程中损坏,微软的MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST(ASP进程)中。

参考解决办法:

压缩和修复我的数据库

下载数据库文件--[如果是.asp的扩展名,请改为.mdb的扩展名]--用ACCESS打开--选择工具--数据库实用工具--压缩和修复数据库--[改回.asp的扩展名]--上传覆盖原来数据库文件

注册了不良的Com组件,特别是用VB开发的ACTIVE

X控件,可能导致占用内存使用量不断增长

参考解决办法:尽量减少或避免非官方或是客户要求的不必要的组件

多媒体等文件下载占用服务器带宽

参考解决办法:停止下载

程序问题

需要及时的关闭不再使用的数据库,以避免一直占用服务器资源

在conn.asp

连接数据库字符串语句中加入如下

sub

endConnection()

conn.close

set

conn=nothing

end

sub

其它程序问题:把IE选项里

显示友好HTTP错误信息

的勾取消掉,再访问网站看出现什么错误信息,然后再调试

上传重要的数据库等文件更新,由于正处于受访问状态,可能导致瞬间占用率上升

一般此情况较少,若有出现此情况时,可能有必要先暂停站点,再作更新

ACCESS论坛(如动W)大了以后就很容易出现数据库方面的问题,当你的论坛数据库在30M以上,帖子5万左右,可能就会出现数据库吃不消的情况

建议取消程序中使用的on

error

resume

next这个容错语句,对错误进行调试。

临时解决办法:定期删除多余的数据、压缩数据库,限制论坛灌水,甚至限制论坛注册。如果是ASP论坛,可以使用分表储存功能,会有较好的效果

比较长远办法:更换论坛和数据库,一般都采用商业版本+MSSQL

的方案来解决


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11807731.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存