Asp.net 应用程序池回收复杂性

Asp.net 应用程序池回收复杂性,asp.net,sitecore,application-pool,Asp.net,Sitecore,Application Pool,我们有一个web应用程序,它出现了类型为System.OutOfMemoryException的异常。我们正在寻找解决问题的根本原因 在此之前,我们每周都会执行应用程序池回收,这样就不会发生此事件 每周回收应用程序池是否会给网站带来更多麻烦?在Sitecore网站的web.config中,您可以设置MemoryMonitorHook以清除一些内存: <hooks> <hook type="Sitecore.Diagnostics.MemoryMonitorHook, Sit

我们有一个web应用程序,它出现了类型为
System.OutOfMemoryException
的异常。我们正在寻找解决问题的根本原因

在此之前,我们每周都会执行应用程序池回收,这样就不会发生此事件


每周回收应用程序池是否会给网站带来更多麻烦?

在Sitecore网站的web.config中,您可以设置
MemoryMonitorHook
以清除一些内存:

<hooks>
  <hook type="Sitecore.Diagnostics.MemoryMonitorHook, Sitecore.Kernel">
    <param desc="Threshold">800MB</param>
    <param desc="Check interval">00:05:00</param>
    <param desc="Minimum time between log entries">00:01:00</param>
    <ClearCaches>true</ClearCaches>
    <GarbageCollect>true</GarbageCollect>
    <AdjustLoadFactor>true</AdjustLoadFactor>
  </hook>
</hooks>

800MB
00:05:00
00:01:00
真的
真的
真的
这基本上告诉Sitecore在内存使用量超过800MB时开始清除缓存并调用GC。
这样,您就不必手动回收应用程序池


如果您担心的不是Sitecore站点,而是它消耗了太多内存,并且由于其他应用程序而不得不回收应用程序池,那么很难判断是否存在复杂性。我们每周也会回收一次应用程序池,不会产生任何问题。显然,我们是在非工作时间和高峰时间进行的。
如果其他应用程序占用了太多内存,您可以尝试将它们放在不同的应用程序池中,这样您就不会干扰网站了?

我们实际上每天都进行回收,除了第一个用户的加载时间变慢之外,没有任何不良影响。Daily可能有点太高了,但是有旧的sitecore站点,刚刚开始实践,它已经卡住了。这正是我们这么做的原因:-)我认为现在根本不需要了。呵呵,是的,但我还是发现了很多问题,回收可以解决,因此,我倾向于谨慎行事,每天进行回收(ofc在非高峰时间)。这正是我希望我们的回收会持续很长时间的原因;-)非常感谢你们的朋友