Утечка памяти RabbitMQ/Celery/Django?

Недавно я взял на себя другую часть проекта, над которым работает моя компания, и обнаружил утечку памяти в нашей установке RabbitMQ/Celery.

Наша система имеет 2 ГБ памяти, из которых в любой момент времени свободно примерно 1,8 ГБ. У нас есть несколько задач, которые обрабатывают большие объемы данных и добавляют их в нашу базу данных.

Когда эти задачи выполняются, они потребляют довольно большой объем памяти, быстро уменьшая нашу доступную память до где-то между 16 МБ и 300 МБ. Проблема в том, что после завершения этих задач память не возвращается.

Мы используем:

  • 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
  • kombu 2.1.0
  • Python 2.6.6
  • erlang 5.8

На нашем сервере работает Debian 6.0.4.

Я новичок в этой настройке, поэтому, если вам нужна какая-либо другая информация, которая может помочь мне определить источник этой проблемы, сообщите мне об этом.

Все задачи имеют возвращаемые значения, все задачи игнорируют _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
12
задан MatthewKremer 24 April 2012 в 19:38
поделиться