IIS:空闲超时与回收

时间:2013-11-14 18:41:38

标签: asp.net iis windows-2003-webserver

在IIS中,有两个区域(好的,两个以上)可以进行回收:

  1. 在“过程模型”部分→“空闲超时”(默认为20分钟)
    1. 在“回收”部分→“常规时间间隔”(默认为1740分钟)
    2. 我的问题是:

      1. 这两种方法有什么区别?
      2. 将它们设置为0会产生什么负面影响?

4 个答案:

答案 0 :(得分:88)

空闲超时是指如果您的网络应用未提出任何操作,则该过程将从内存中删除并释放所有内容

对于内存泄漏和系统运行状况而言,回收是对应用程序的强制操作,其中处理已关闭并再次启动

两者的负面影响通常是使用你的会话和应用程序状态会丢失如果你把回收利用到更快的时间。(登录用户等将被注销,如果他们即将“检查”所有可能已经丢失了“这就是为什么回收是如此大的超时价值,空闲超时无关紧要因为无论如何没有人登录并且20分钟没有动作他们仍然没有”购物“

如果您的网站不是一个高度活跃的网站,用户必须等待加载,如果您的每个用户都有1个用户20分钟就可以说了。因此,在20分钟内获得不到1次的网站实际上您会希望增加此值,因为网站必须从头开始为每个用户重新加载。但是如果长时间将其设置为0,代码中的任何内存泄漏都可能会持续一段时间,完全占用服务器。

答案 1 :(得分:28)

来自here

  

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

同时检查Why is the IIS default app pool recycle set to 1740 minutes?

  

如果您的服务器上只有几个站点,并且您希望它们   总是加载快,然后将其设置为零。否则,当你有20   没有任何流量的分钟,然后应用程序池将终止,以便   它可以在下次访问时重新开始。问题是第一个问题   访问应用程序池需要创建一个新的w3wp.exe工作进程   这很慢,因为需要创建应用程序池,ASP.NET或   需要加载另一个框架,然后您的应用程序需要   要加载。这可能需要几秒钟。因此我将其设置为0   我有的每一次机会,除非它是一个托管很多的服务器   不一定需要运行的网站。

答案 2 :(得分:3)

IIS现在有

Idle Time-out Action : Suspend设置

暂停只是冻结过程,它比破坏过程更有效。

答案 3 :(得分:1)

我继承了一个桌面应用程序,可以在IIS上调用一系列Web服务。 Web服务(也)必须能够独立运行定时进程(无需启用客户端)。因此他们都有计时器。 Web服务计时器正在关闭(内存泄漏?),因此我们将空闲时间设置为0并且计时器保持打开状态。