对于使用Sidekiq运行的后台作业,Heroku超出了R14内存配额

时间:2014-03-19 06:09:06

标签: ruby heroku neo4j sidekiq neography

我们正在运行利用neography进行批量操作的sidekiq工作人员。

我们的批处理阵列在刷新之前最多可容纳400个操作(我们也尝试过较低的数字)。

我们在heroku上遇到R14内存错误,事情几乎停止了,所以我们怀疑某种内存泄漏(我已经检查过膨胀)。但是,我们无法弄清楚它在哪里或如何防止它。

我们尝试使用所有调试内存gem作为ruby-prof,[...]没有任何结果或线索,通过ObjectSpace读取对象计数,甚至尝试逐行调试并启动进程没有后台作业,只需通过rails c和以下命令来监控内存使用情况top -pid `ps auw | grep -i 'rails c' | head -n 1 | awk '{print $2}'` -stats RSIZE

我尝试将我们的ruby版本更新到最新版本(2.1.0),但没有更改。

欢迎任何想法帮助我们让员工更快乐!

1 个答案:

答案 0 :(得分:0)

Neo4j内部使用大量缓存,可能会消耗大量内存。您可以尝试通过设置cache_type=none来关闭Neo4j的对象缓存,请参阅http://docs.neo4j.org/chunked/stable/configuration-caches.html