【发布时间】:2014-06-29 23:59:39
【问题描述】:
我在 Heroku 中有一个 Rails 4 应用程序,它使用 Sidekiq 作为后台作业处理器。这项工作基本上做了两件事(CPU/RAM 很昂贵):
默认情况下,Sidekiq 具有每个进程 25 个线程的并发性,但如果我有这种并发性,我就会超过我的工作人员测功机的内存配额。当每个进程执行 10 个线程时,我或多或少会得到以下信息:
Process running mem=936M(182.8%)
Error R14 (Memory quota exceeded)
所以,我可以将线程数减少到 2 或 3,以确保我“永远不会”克服 dyno 允许的内存,但有时工作人员可能有足够的内存来拥有更多线程。
我的问题是:Sidekiq 是否可以根据进程使用的内存百分比动态修改其并发性?如果没有,关于如何在 Heroku 中找到一个好的阈值来运行它的任何建议?
【问题讨论】:
标签: ruby-on-rails heroku sidekiq