【问题标题】:Sidekiq on heroku - Error R14 (Memory quota exceeded)Heroku 上的 Sidekiq - 错误 R14(超出内存配额)
【发布时间】:2013-10-01 21:51:52
【问题描述】:

我有一个在 heroku 上运行的 sidekiq 进程,它在运行一段时间后崩溃并显示以下错误消息:

错误 R14(超出内存配额)

谁能给我任何关于如何开始诊断发生的事情的指示?

没有什么明显的原因可能导致这种情况。

【问题讨论】:

    标签: heroku sidekiq


    【解决方案1】:

    我们也面临同样的问题,因此决定让 Newrelic 承担繁重的工作并帮助我们进行诊断。您可能可以使用一些免费的 Newrelic 计划,但如果它们都没有深入到您的代码中,您可能需要考虑为 Pro 版本支付一个月的费用,以帮助您分析您的应用程序。

    我无法进一步帮助您,因为我们即将切换到 Pro(等待 Newrelic 接受该计划)所以没有更多的见解,但认为它可能会帮助您查看它。

    如果您不想使用 Newrelic,Heroku 还有一个实验室功能,可以分析内存使用情况并报告到日志,启用它:

    heroku labs:enable log-runtime-metrics
    

    然后它将显示您的每个测功机正在使用多少内存。

    您遇到的错误是 Heroku 上的内存超出内存配额。 Heroku 对此有话要说:

    进程超出其内存配额的 Dynos 由 日志中出现 R14 错误。这不会终止进程,但会 警告恶化的应用程序条件:内存使用超过配额 将换出到磁盘,这会大大降低测功机性能。

    This page 有更多信息。

    【讨论】:

      【解决方案2】:

      尝试降低并发性。 Sidekiq 默认为 25。我将其降低到 15,它大大减少了内存使用量并消除了内存交换错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-14
        • 2017-04-16
        • 1970-01-01
        • 2020-11-23
        • 2023-03-28
        • 2017-11-02
        • 2017-11-29
        • 2014-04-25
        相关资源
        最近更新 更多