【问题标题】:application pool recycle complications应用程序池回收并发症
【发布时间】:2013-07-24 00:16:02
【问题描述】:

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

在此之前,我们每周都会执行应用程序池回收,以免发生此事件。

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

【问题讨论】:

    标签: asp.net sitecore application-pool


    【解决方案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 站点,您担心会消耗过多内存,并且因为其他应用程序而不得不回收应用程序池,那么很难判断是否存在并发症。我们也每周回收一次应用程序池,我们不会遇到任何问题。显然,我们是在非工作时间和高峰时间这样做的。
    如果其他应用程序占用过多内存,您可以尝试将它们放在不同的应用程序池中,这样就不会干扰网站?

    【讨论】:

    • 我们实际上每天都在回收,没有任何不良影响,除了第一个用户的加载时间较慢。每日可能有点太高了,但是有旧的 sitecore 网站,刚开始练习,它就卡住了。
    • 这与我们这样做的原因完全相同 :-) 我认为现在根本不需要它。
    • 呵呵,是的,但我仍然发现很多问题都可以通过回收来解决,所以我倾向于谨慎行事并每天回收(ofc 在非高峰时间)。
    • 这正是我希望我们的回收利用持续很长时间的原因 ;-)
    • 非常感谢你们的建议
    猜你喜欢
    • 2015-01-07
    • 2011-09-20
    • 2016-06-13
    • 2015-09-02
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 2012-04-16
    相关资源
    最近更新 更多