RabbitMQ/芹菜/Django内存泄漏?

RabbitMQ/芹菜/Django内存泄漏?,django,rabbitmq,celery,amqp,django-celery,Django,Rabbitmq,Celery,Amqp,Django Celery,我最近接管了公司正在进行的项目的另一部分,并发现RabbitMQ/Cellery设置中似乎存在内存泄漏 我们的系统有2Gb的内存,在任何给定时间大约有1.8Gb的可用空间。我们有多个任务处理大量数据并将其添加到数据库中 当这些任务运行时,它们会消耗相当大的内存,使可用内存迅速下降到16Mb到300Mb之间。问题是,在这些任务完成后,内存不会返回 我们正在使用: RabbitMQ v2.7.1 AMQP 0-9-1/0-9/0-8(从 RabbitMQ启动日志) 芹菜2.4.6 Django 1

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

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

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

我们正在使用:

  • RabbitMQ v2.7.1
  • AMQP 0-9-1/0-9/0-8(从 RabbitMQ启动日志)
  • 芹菜2.4.6
  • Django 1.3.1
  • amqplib 1.0.2
  • django芹菜2.4.2
  • kombu 2.1.0
  • Python 2.6.6
  • erlang 5.8
我们的服务器正在运行Debian 6.0.4

我是此设置的新手,因此如果您需要任何其他信息来帮助我确定此问题的来源,请让我知道

所有任务都有返回值,所有任务都有忽略结果=True,芹菜忽略结果设置为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运行此安装程序,这会导致内存泄漏

查看此帖子:

我会发布我的配置,以防有帮助

设置.py 您可能正在访问
librabbitmq
。请检查芹菜是否正在使用
librabbitmq>=1.0.1


一个简单的修复方法是:
pip install librabbitmq>=1.0.1

Django的调试设置为False,对不起,忘了提到我们也尝试过了。除此之外,我真的不知道。我会用我的配置来编辑我的帖子,也许这能帮你节省一天的时间。你找到解决方案了吗?我也遇到了同样的问题,你知道问题出在哪里了吗?老实说,它刚刚消失了,所以我会确保服务器上的所有内容都得到更新。真的很抱歉,在这件事上我不能提供更多的帮助。直到今天我仍然很难过。。。
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',)