我已经注意到,我的生产Web应用程序之一,当我手动回收一个应用程序池,回收工作进程可以利用60+秒向上实际上完全被破坏的基础上,看着它在任务管理器。但是,如果我完全停止的应用程序池,工作进程消失几乎瞬间 - 在1-2秒

所以,我的问题是双重的:

一)为什么会如此之长,以破坏该过程(和更有意义,释放使用/时,应用程序池被回收,而不是停止的资源通过它锁定);和

二)假设我已经不再被定向到服务器的流量,有什么理由不停止/启动,而不是循环?


修改结果  为了澄清,我之前无论是回收或停止应用程序池,我停止流量(服务器是在负载平衡群集,我删除从负载均衡服务器)被发送到服务器的问题。因此,从理论上讲,应该有来的网站,我做任何的应用程序池的时间的请求。


修改部分德塞夫勒:结果  阅读有约色的链接后,似乎很明显,我发生了什么。当我回收应用程序池,将新进程启动,但由于没有流量的话,那是不是注册新的工艺运行,所以它不会关闭旧直到超时(这是90秒)。

通过这些知识,很明显对我来说,“回收”功能专门用于使用现场服务器上中游,因为我手动排水流量事前,我应该使用停止/而不是开始。

有帮助吗?

解决方案

一)因为重叠回收的。存在该“旧”处理等待新的启动时间段。

b)不据我所知。

其他提示

如果我没有记错的循环允许所有现有请求完成,然后将回收的应用程序池。止损只是结束它在精确的瞬间,你停下来。

根据这个链接

  

停止 - 由停止应用程序池,你指示服务于该应用程序池的所有IIS工作进程关闭,   并防止任何额外的工作进程被启动,直到   应用程序池再次启动。 :该开始从容   工作进程的关闭,其中每个工作进程试图   排出所有它的请求,然后退出。

     

如果一个工作进程没有在指定的时间量内退出   通过在中processModel的shutdownTimeLimit配置属性   每个应用程序池的定义的元素(默认值:90秒),WAS   将被迫终止,它(这并不发生,如果本机调试   附)。

     

因此,停止应用程序池是一种破坏性的行动,   原因卸载ASP.NET应用程序域,FastCGI的子进程,   和任何正在处理中的应用程序状态的丢失。

     

<强>回收 - 回收的应用程序池导致所有当前正在运行的IIS工作进程在该应用程序池是正常   关机,但不像停止池,新的IIS工作进程可以   按需处理的后续请求来启动。

     

回收的应用程序池是引起的复位的好方法   应用程序状态和IIS工作缓存任何配置   不得到自动更新过程(主要是全球   注册表项),而不破坏服务器的运行。这个   使回收的应用程序池的一个伟大的选择   IISRESET在大多数情况下。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top