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

时间:2017-07-28 06:49:43

标签: python python-2.7 celery django-celery

我们正在使用

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

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

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

有人可以帮忙调试并修复此问题。

1 个答案:

答案 0 :(得分:3)

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

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

  1. 你的工人超载了。尝试使用here
  2. 提到的并发性
  3. 检查您的django设置DEBUG是否设置为True。它可能会导致内存泄漏,芹菜会在你运行它时提出建议。
  4. 检查history中的内存泄漏修复程序。对我来说,它似乎是你的下一个版本,3.1.21准确地说有一些内存泄漏修复。尝试升级到最新的3.x版本(仅当您因任何原因无法使用4.x时)。
  5. 如果所有其他方法都失败了,请尝试使用一些监控工具来调试正在发生的情况。提到了一些监控工具here