作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我注意到,在我的一个生产 Web 应用程序上,当我手动回收应用程序池时,根据在任务管理器中的观察,回收的工作进程可能需要 60 多秒才能真正完全销毁。但是,如果我完全停止应用程序池,工作进程几乎会立即消失 - 在 1-2 秒内。
所以,我的问题有两个:
a) 当应用程序池被回收而不是停止时,为什么需要这么长时间来销毁进程(更有意义的是,释放它使用/锁定的资源);和
b)假设我已经阻止流量定向到服务器,是否有任何理由不停止/启动而不是回收?
<小时/>编辑:
为了澄清,在回收或停止应用程序池之前,我会阻止流量发送到有问题的服务器(该服务器位于负载平衡集群中,并且我从负载平衡器中删除该服务器)。因此,从理论上讲,当我对应用程序池执行任何操作时,不应该有任何请求来到网站。
编辑第二部分:
阅读伊格尔的链接后,我觉得发生的事情似乎很明显。当我回收应用程序池时,新进程启动,但由于根本没有流量,它不会将新进程注册为正在运行,因此它不会关闭旧进程,直到超时(即 90秒)。
有了这些知识,我很清楚“回收”功能专门用于实时服务器上的中流,并且由于我事先手动排出流量,因此我应该使用停止/启动。
最佳答案
a) 因为 Overlapped Recycling 。 “旧”进程等待新进程启动需要一段时间。
b) 不,据我所知。
关于IIS 应用程序池 - 停止/启动与回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/391878/
我是一名优秀的程序员,十分优秀!