我们正在运行利用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),但没有更改。
欢迎任何想法帮助我们让员工更快乐!
答案 0 :(得分:0)
Neo4j内部使用大量缓存,可能会消耗大量内存。您可以尝试通过设置cache_type=none
来关闭Neo4j的对象缓存,请参阅http://docs.neo4j.org/chunked/stable/configuration-caches.html。