【问题标题】:sidekiq taking more memory over the period? How we can solve that?sidekiq 在此期间占用更多内存?我们如何解决这个问题?
【发布时间】:2014-03-19 23:44:48
【问题描述】:

sidekiq 运行时间很长,在此期间我们的 16GB RAM 几乎已满。如果我们停止并重新启动内存就会下降。

我们的 Rails 应用程序版本是 Rails 3.2.12 和 Ruby 1.9.3

我们如何解决这个问题?

【问题讨论】:

  • 你使用的数据库是什么
  • 基准替代品。如果您使用 PostgreSQL,请考虑 queue_classic。

标签: ruby-on-rails ruby sidekiq


【解决方案1】:

这发生在我部署 Sidekiq 后不久。事实证明,我有一份正在运行的工作,发生以下情况:

  • 它将加载导入用户所需的电子表格
  • 在导入过程中出错并死了
  • Sidekiq 工作人员已设置好多次重试作业
  • 然后每次重试都会失败......但如果没有大型 I/O 操作来读取电子表格、将上传的电子表格中的数据存储在内存中等,就会失败。
  • 我的 Sidekiq 进程在一个小时左右的时间内运行了高达 1-2 GB 的 RAM

为了解决这个问题,我做了以下事情:

  • 已安装 Sidekiq Failures 以通过 Sidekiq Web 界面中的选项卡查看故障
  • 发现问题的根源并修复它
  • 将重试次数缩短到 1 次(从 5 次或 6 次……这在应用程序规则等方面对我有用,但可能对问题影响不大)
  • 添加了更好的异常处理来捕获和报告这些错误

自从修复作业中的问题/错误后,我的 Sidekiq 进程已经连续运行了 102 天,处理了近 25,000 个作业(我知道不是很多)并且从未超过 700 MB(99% 的时间,它位于 678 MB)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 2020-12-23
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多