heroku上的Sidekiq - 错误R14(超出内存配额)

时间:2013-09-26 04:46:50

标签: heroku sidekiq

我有一个在heroku上运行的sidekiq进程,在运行一段时间之后会出现这个错误消息:

  

错误R14(超出内存配额)

任何人都可以给我任何关于如何开始诊断的指示吗?

没有任何明显可能导致这种情况。

2 个答案:

答案 0 :(得分:1)

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

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

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

heroku labs:enable log-runtime-metrics

然后它会显示你的每个dynos使用多少内存。

你得到的错误是Heroku上的内存超过了内存配额。 Heroku对此有这样的说法:

  

其进程超过其内存配额的Dynos由a标识   日志中的R14错误。这不会终止进程,但确实如此   警告应用条件恶化:超过配额使用的内存   将换出磁盘,这会大大降低dyno的性能。

This page有更多信息。

答案 1 :(得分:0)

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

Memory Usage Graph