我们有一个Web应用程序,除了System.OutOfMemoryException
类型之外。我们正在研究修复的根本原因。
在此之前,我们每周都会执行应用程序池回收,以便不会发生此事件。
每周回收应用程序池是否会导致网站出现更多复杂情况?
答案 0 :(得分:1)
在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>
这基本上告诉Sitecore在内存使用量超过800MB时开始清除缓存并调用GC 这样您就不必手动回收应用程序池。
如果不是Sitecore网站,你担心消耗太多内存,而且由于其他应用程序你必须回收应用程序池,很难判断是否存在复杂问题。我们每周回收一次应用程序池,我们不会产生任何问题。显然,我们是在营业时间和高峰时间之外完成的。
如果其他应用程序消耗了太多内存,您可以尝试将它们放在不同的应用程序池中,这样您就不会打扰网站了吗?