iis默认程序池不回收

iis默认程序池不回收,第1张

IIS一般默认 应用程序池有设置固定时间间隔(分钟) 默认1740,以及闲置超时(分钟) 默认20;如果我们 asp.net core+quartz.net 部署在IIS上执行长期定时任务时,需要将上来两项内容设置成0,(不回收);不然我们的定时任务会在IIS做回收时清理掉我们的定时任务。导致任务停止;如果可以做定期检测也是一种方式,本人比较偷懒,就不做回收。但是否会造成其他问题,需要观察iis程序池默认回收时间为1740分钟(29小时),若要自定义为不回收, *** 作如下,这样IIS除非手动回收,否则不会自动回收

1 在IIS中找到这个站点所用的程序池,点击“高级设置…”

2 回收——固定时间间隔(分钟) 改为 0

3 回收——虚拟/专用内存限制(KB) 改为 0

4 进程模型——闲置超时(分钟) 改为 0 那一定是IIS的应用程序池回收的机制在作怪了。因为IIS的默认设置里面,如果一个站点所处的应用程序池超过一段时间没有被访问或者请求,IIS就会自动回收这个程序池,并且把进程杀掉。那进程里面的线程肯定也活不下来了。

但是我们可以通过设置应用程序池参数使其不会被简单的自动回收(有些情况无法避免,比如热部署的站点,错误数量超限等等)

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

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

IIS应用程序池

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

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

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

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

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

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

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

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

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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存