【发布时间】:2015-07-12 23:05:50
【问题描述】:
我在我的 Rails 应用程序中使用 Sidekiq with God。我正在使用乘客和 Nginx。
我看到 sidekiq 运行的许多进程 (30-50) 消耗了大约 1000MB 的 RAM。
过程如下:
sidekiq 3.4.1 my_app_name [0 of 1 busy] - 大约 30 个进程。
ruby /home/myuser/.rvm/ruby-2.1.5/bin/sidekiq --environment ... - 大约 20 个进程。
如何告诉 sidekiq 不要运行这么多线程。
我的 sidekiq 配置 (config/sidekiq.yml):
---
:concurrency: 1
:queues:
- default
- mailer
并为上帝配置 sidekiq:
num_workers = 1
num_workers.times do |num|
God.watch do |w|
...
w.start = "bundle exec sidekiq --environment #{rails_env} --config #{rails_root}/config/sidekiq.yml --daemon --logfile #{w.log}"
【问题讨论】:
-
如果你在不使用上帝的情况下启动 sidekiq 你会得到同样的行为吗?
-
如果我在命令行中运行:
bundle exec sidekiq -e beta -c 1 -C /../config/sidekiq.yml -d -L /../log/sidekiq.log那么它会启动 10 个进程sidekiq 3.4.1 my_app_name [0 of 1 busy]。但我说 -c 1 所以我希望它运行一个进程。 -
没有上帝,它工作正常。
-
只启动一个进程?
-
如果 sidekiq 在没有上帝的情况下运行,则 htop 显示 10 个进程。
标签: ruby-on-rails sidekiq