【问题标题】:How can I control memory with Celery running on gevent?如何使用在 gevent 上运行的 Celery 控制内存?
【发布时间】:2020-11-25 21:02:09
【问题描述】:

我们使用gevent 运行 Celery,虽然内存消耗开始时很大,但随着时间的推移,内存使用量会增加。假设我们无法追踪内存膨胀或泄漏的原因,是否有控制内存使用的好方法?

在 prefork 上运行时,我们使用了 --max-tasks-per-child--max-memory-per-child,但这些似乎与 gevent 不兼容(Celery 文档说它仅适用于 preforkhttps://docs.celeryproject.org/en/stable/userguide/workers.html#max-tasks-per-child-setting)。

我们能否重新创建该功能,以便 Celery 进程在内存过高时自行重新启动?

【问题讨论】:

    标签: python celery django-celery gevent


    【解决方案1】:

    您可以构建一个 cron 作业,以您选择的频率重新启动 celery 工作程序。确保启动热关机,否则您将丢失当前正在运行的任何任务。您也可以考虑关闭并发性,或者重新评估是否应该使用 preforked。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-06
      • 2021-12-19
      • 1970-01-01
      • 2016-10-17
      • 1970-01-01
      相关资源
      最近更新 更多