python - CeleryBeat 进程消耗所有操作系统内存

标签 python python-2.7 celery django-celery

我们正在使用

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

我们编写了一个 CustomDataBaseScheduler 来调度任务,它可以完美地按时调度任务。我们正在运行 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. 您的 worker 重载运转。尝试使用提到的并发 here
  2. 检查您的 Django 设置 DEBUG 是否设置为 True。它可能会导致内存泄漏,当您运行它时,celery 建议您不要这样做。
  3. 检查 history 中的内存泄漏修复程序.对我来说,它似乎是你的下一个版本,3.1.21准确地说有一些内存泄漏修复。尝试升级到最新的 3.x 版本(仅当您出于任何原因无法使用 4.x 时。)
  4. 如果一切都失败了,请尝试使用一些监控工具来调试有关正在发生的事情的场景。提到了一些监控工具here .

关于python - CeleryBeat 进程消耗所有操作系统内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45366680/

相关文章:

python - 使用 Celery 和 Python 将输入和图像处理作业发送到多台机器

python - 执行其他 celery 任务不起作用的 celery 周期性任务

django - celery 调度错误: an integer is required

python - 导入 python 3 提示参数为 str/bytes

python - ConfigParser 读取大写键并使它们小写

python - Python 中的 set.copy() 是原子的吗?

python - swaplevel() 和 reorder_levels() 有什么区别?

python - 如何将参数传递给ajax url (DJANGO)

python - 如何修改xml文件中解析后的字符串?

python - Serializer.is_valid() 始终返回 False。 Serializer.errors 为空