IIS:空闲超时与回收

在IIS中有两个领域(以及两个以上)可以进行回收:

1)在“Process Model”部分 – >“Idle Timeout”(默认20分钟)

2)在“回收”部分 – >“常规时间间隔”(默认1740米)

我的问题是…

a)两种方法有什么区别?
b)将它们设置为0的负面影响是什么?

谢谢!

空闲超时是如果没有行动已经从你的networking应用程序请求,它的过程将下降,并从内存释放的一切

回收是对已处理closures并重新启动的应用程序的强制操作,用于内存泄漏目的和系统健康状况

这两者的负面影响通常是使用你的会话和应用程序状态是丢失,如果你把回收更快的时间(login用户等将被注销,如果他们在哪里要“检查”所有将会丢失“这就是为什么回收是如此大的时间价值,空闲超时并不重要,因为无论如何没有人login,并图20分钟不采取行动,他们仍然不是”购物“

积极的是摆脱空闲时间,因为如果你的网站不是一个高度活跃的站点,如果你每20分钟有一个用户就不得不等待它加载说。 因此,一个网站在20分钟内获得less于1次的时间,实际上你会想要增加这个值,因为网站必须从头开始为每个用户重新加载。 但是如果你长时间设置为0,代码中的任何内存泄漏都会超过一定的时间,完全接pipe服务器。

从这里 :

节省系统资源的一种方法是为应用程序池中的工作进程configuration空闲超时设置。 configuration这些设置后,工作进程将在指定的闲置时间后closures。 空闲超时的默认值是20分钟。

另外检查为什么IIS默认应用程序池回收设置为1740分钟?

如果您的服务器上只有less数几个站点,并且希望它们始终加载速度很快,则将其设置为零。 否则,如果您有20分钟没有任何stream量,则应用程序池将终止,以便在下次访问时再次启动。 问题是首次访问应用程序池需要创build一个新的w3wp.exe工作进程,这个进程很慢,因为需要创build应用程序池,需要加载ASP.NET或其他框架,然后您的应用程序需要被加载。 这可能需要几秒钟的时间。 因此,我将其设置为0,除非它是承载大量不总是需要运行的站点的服务器。

我已经inheritance了一个桌面应用程序,可以调用IIS上的一系列Web服务。 Web服务(也)必须能够独立运行定时进程(不需要客户端)。 因此,他们都有计时器。 Web服务定时器正在closures(内存泄漏?),所以我们将空闲时间设置为0,并且定时器保持不变。

IIS现在有

Idle Time-out Action : Suspend设置

暂停只是冻结了这个过程,而且比破坏过程更有效率。