9

我们应该多久回收一次应用程序池?

有人告诉我,我应该每 24 小时回收一次应用程序池?

为什么我需要回收应用程序池?

我们会得到什么样的好处?

4

1 回答 1

11

除非有一些压倒一切的原因,否则我建议不要进行任何基于时间的回收(也就是说,没有像每天凌晨 3 点这样的时间表,也没有每 29 小时循环一次的类型回收)。我认为这更像是从事情不太稳定时的保留(考虑回收必须定期重新启动服务器的较轻版本)。

为了保护自己免受内存泄漏等的影响,您可以对虚拟和已用内存设置限制,以在进程失控时强制回收。您将获得确保您不会使用太多内存的所有价值,而无需进行不必要的回收。

绝对有需要回收的时候,但这些主要存在于更改周围(即,如果您要放入新的 DLL,或进行某些配置更改)。就“定期维护”类型的回收而言,使用正确编写和测试的代码,这应该是没有必要的。(额外的警告,适当的监控也有帮助,因为我想你也可能有一个进程与 CPU 一起运行,并且没有回收限制)

回收的好处是你“重新开始”。您清理内存并重新加载 DLL。任何长时间运行的线程(阅读:不做任何事情的挂起线程)都会被清除。缺点是您必须花时间将内容加载回内存(尽管新的热身内容会为您处理很多事情)。

于 2012-08-15T16:15:43.480 回答