gpt4 book ai didi

django - RabbitMQ/Celery/Django 内存泄漏?

转载 作者:行者123 更新时间:2023-12-04 01:12:55 25 4
gpt4 key购买 nike

我最近接手了我公司正在进行的项目的另一部分,并发现我们的 RabbitMQ/Celery 设置中似乎存在内存泄漏。

我们的系统有 2Gb 的内存,在任何给定时间都有大约 1.8Gb 的可用内存。我们有多个任务可以处理大量数据并将它们添加到我们的数据库中。

当这些任务运行时,它们会消耗相当多的内存,使我们的可用内存迅速下降到 16Mb 到 300Mb 之间的任何地方。问题是,这些任务完成后,内存不会回来。

我们正在使用:

  • RabbitMQ v2.7.1
  • AMQP 0-9-1/0-9/0-8(从
    RabbitMQ 启动日志)
  • celery 2.4.6
  • Django 1.3.1
  • amqplib 1.0.2
  • django celery 2.4.2
  • 海带 2.1.0
  • Python 2.6.6
  • 二郎 5.8

  • 我们的服务器运行的是 Debian 6.0.4。

    我是此设置的新手,因此如果您需要任何其他信息可以帮助我确定此问题的来源,请告诉我。

    所有任务都有返回值,所有任务都有ignore_result=True,CELERY_IGNORE_RESULT设置为True。

    非常感谢您的宝贵时间。

    我当前的配置文件是:
    CELERY_TASK_RESULT_EXPIRES = 30
    CELERY_MAX_CACHED_RESULTS = 1
    CELERY_RESULT_BACKEND = False
    CELERY_IGNORE_RESULT = True
    BROKER_HOST = 'localhost'
    BROKER_PORT = 5672
    BROKER_USER = c.celery.u
    BROKER_PASSWORD = c.celery.p
    BROKER_VHOST = c.celery.vhost

    最佳答案

    我几乎可以肯定您正在使用 DEBUG=True 运行此设置,这会导致内存泄漏。

    查看此帖子:Disable Django Debugging for Celery .

    如果有帮助,我会发布我的配置。

    设置.py

    djcelery.setup_loader()
    BROKER_HOST = "localhost"
    BROKER_PORT = 5672
    BROKER_VHOST = "rabbit"
    BROKER_USER = "YYYYYY"
    BROKER_PASSWORD = "XXXXXXX"

    CELERY_IGNORE_RESULT = True
    CELERY_DISABLE_RATE_LIMITS = True
    CELERY_ACKS_LATE = True
    CELERYD_PREFETCH_MULTIPLIER = 1
    CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
    CELERY_ROUTES = ('FILE_WITH_ROUTES',)

    关于django - RabbitMQ/Celery/Django 内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10302503/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com