CeleryBeat Process消耗所有操作系统内存

Vir*_*bey 11 python celery python-2.7 django-celery

我们正在使用

django-celery==3.1.10
celery==3.1.20
python 2.7.13
Run Code Online (Sandbox Code Playgroud)

我们编写了一个CustomDataBaseScheduler来安排任务,它可以按时完美地安排任务.我们将CeleryBeat Process作为init脚本运行,但celeryBeat消耗系统的全内存,即一天24GB.

我试图在celerybeat Process上运行pmap,但它显示[anon]占用了大部分内存.

有人可以帮助调试和解决这个问题.

rma*_*d17 3

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

针对您的问题,可能是以下原因之一:

  1. 你的工人超负荷了。尝试使用此处提到的并发
  2. 检查您的 django 设置是否DEBUG设置为True. 它可能会导致内存泄漏,芹菜建议您在运行它时不要这样做。
  3. 检查历史记录中是否有内存泄漏修复。对我来说,这似乎是您的下一个版本,准确地说,3.1.21修复了一些内存泄漏问题。尝试升级到最新的 3.x 版本(仅当您因任何原因无法使用 4.x 时。)
  4. 如果所有其他方法都失败,请尝试使用一些监视工具来调试有关正在发生的情况的场景。这里提到了一些监控工具。