我们应该多久回收一次应用程序池?
有人告诉我,我应该每24小时回收一次应用程序池吗?
为什么我需要回收应用程序池?
我们会得到什么样的好处?
答案 0 :(得分:7)
除非有一些压倒一切的理由,否则我建议不要进行任何基于时间的回收(即没有时间表,例如每天凌晨3点,也不是每29小时循环一次)。我认为,当事情不那么稳定时,这更像是一种保留(考虑回收更轻松的版本,必须定期重启服务器)。
为了保护自己免受内存泄漏等的影响,您可以对Virtual和Used内存设置限制,以便在进程失控时强制进行回收。您可以获得所有的价值,确保不会耗尽太多内存,而不会不必要地进行回收。
您绝对需要回收,但这些通常存在于更改中(即,如果您正在删除新的DLL,或进行某些配置更改)。就“常规维护”类型的回收而言,使用正确编写和测试的代码,这不是必需的。 (另外需要注意的是,正确的监控也有帮助,因为我认为你也可能有一个CPU流程,而且没有回收限制)
回收利用的好处是你“重新开始”。您清理内存并重新加载DLL。任何长时间运行的线程(读取:未执行任何操作的挂起线程)都将被清除。缺点是你必须花时间把东西装回内存(尽管新的热身东西会为你解决很多问题)。