IIS:空闲超时与回收

Ric*_*cky 90 asp.net iis windows-2003-webserver

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

  1. 在"过程模型"部分→"空闲超时"下(默认为20分钟)

  1. 在"回收"部分→"常规时间间隔"下(默认为1740分钟)

我的问题是:

  1. 这两种方法有什么区别?
  2. 设置它们对0的负面影响是什么?

Mic*_*hik 94

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

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

这两者的负面影响通常是你的会话和应用程序状态的使用如果你把回收更快地弄到更快的时间就会丢失.(登录的用户等将被注销,如果他们即将"结账"所有本来就是失去了"这就是为什么回收是如此大的超时价值,空闲超时无关紧要因为无论如何都没有人登录并且20分钟没有行动它们仍然没有"购物"

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

  • @Silvermind - 如果会话存储在进程中,则在回收时不会复制.见[这里](http://stackoverflow.com/a/4278040/1057791). (2认同)

Rah*_*thi 31

这里:

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

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

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


nPc*_*omp 7

IIS 现在有

Idle Time-out Action : Suspend 环境

挂起只是冻结进程,它比破坏进程更有效。