CeleryBeat 进程消耗所有 OS 内存

CeleryBeat Process consumes all OS memory

我们正在使用

django-celery==3.1.10
celery==3.1.20
python 2.7.13

我们写了一个CustomDataBaseScheduler来调度任务,它可以完美地按时调度任务。我们正在 运行ning CeleryBeat Process 作为初始化脚本,但 celeryBeat 消耗了系统的全部内存,即一天 24GB。

我尝试在 celerybeat 进程上 运行 pmap,但它显示 [anon] 占用了最多的内存。

有人可以帮忙调试和修复这个问题吗?

首先,如果您使用的是django 1.8 或更高版本,请使用celery 4.0 及更高版本。在这种情况下,您将不需要 django-celery。同样在这种情况下,请遵循本教程。 http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html

出现您的问题可能是以下原因之一:

  1. 您的工人超负荷运转。尝试使用提到的并发 here
  2. 检查您的 django 设置 DEBUG 是否设置为 True。它可能会导致内存泄漏,当您 运行 它时,celery 建议您不要这样做。
  3. 检查 history. To me it seemed the next version after yours, 3.1.21 中的内存泄漏修复,准确地说是有一些内存泄漏修复。尝试升级到最新的 3.x 版本(仅当您出于任何原因无法使用 4.x 时。)
  4. 如果一切都失败了,请尝试使用一些监控工具来调试有关正在发生的事情的场景。提到了一些监控工具here