【问题标题】:Sidekiq consumes too much memorySidekiq 消耗太多内存
【发布时间】: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


【解决方案1】:

问题在于“--daemon”(或“-d”)参数将其作为守护进程运行。无需将其作为守护程序运行。只需删除此参数即可。

【讨论】:

    猜你喜欢
    • 2020-04-16
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 2016-06-29
    • 1970-01-01
    • 2022-06-25
    相关资源
    最近更新 更多