我在Heroku中有一个Rails 4应用程序,它使用Sidekiq作为后台作业处理器。这项工作基本上做了两件事(CPU / RAM昂贵):
默认情况下,Sidekiq每个进程的并发性为25个线程,但如果我有并发性,那么我会超过我的工作dyno的内存配额。当每个进程执行10个线程时,我或多或少地得到这个:
Process running mem=936M(182.8%)
Error R14 (Memory quota exceeded)
所以,我可以将线程数减少到2或3,以确保我永远不会'克服了dyno允许的内存,但有时候工作者可以有足够的内存来拥有更多的线程。
我的问题是:Sidekiq有没有办法动态修改其并发性,具体取决于其进程使用的内存百分比?如果没有,有关如何在Heroku中找到运行此阈值的良好阈值的任何建议吗?
答案 0 :(得分:3)