也许有人可以对这个简单的问题有所了解:
我有一个经过彻底审查的.NET Web应用程序.它会在每个appdomain(进程)启动时加载一个缓存,并且在完成此缓存加载之前无法完全回复请求.
我一直在检查我的应用程序池上的设置,并开始想知道为什么我甚至经常回收(每1,000,000个电话一次或2个小时).
是什么阻止我将自动回收设置为每24小时甚至更长时间?为什么不完全删除该选项,只是如果内存旋转失控的appdomain只是回收?
如果您的应用程序可靠运行的时间长于为应用程序池回收设置的阈值,则无论如何都会增加阈值.如果您的应用程序稳定,则没有任何缺点.
对于我们来说,我们完全关闭了回收,而是每分钟都有一个加载测试页面的任务,如果连续加载五次,则运行iisreset.
您应该从可靠性的角度考虑回收利用.根据历史数据,您应该知道您的应用程序使用了多少内存,CPU等,以及历史模式以及何时开始出现问题.知道这一点,您可以配置回收以解决这些问题.例如,如果您知道您的应用程序具有不断增加的内存使用模式*,导致应用程序在几天的时间后内存不足,您可以将其配置为在发生之前进行回收.
*显然,如果可能的话,您也希望解决此错误,但可以使用回收来提高客户的可靠性