Python Django Celery занимает слишком много памяти

Я запускаю сервер сельдерея, на котором периодически выполняется задача 5,6. Сельдерей занимает слишком много памяти после 5,6 дней непрерывного выполнения.

Документация по сельдерею очень запутанная. Я использую следующие настройки.

# celeryconfig.py
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'xxx.settings'
# default RabbitMQ broker
BROKER_URL = "amqp://guest:guest@localhost:5672//"

from celery.schedules import crontab
# default RabbitMQ backend
CELERY_RESULT_BACKEND = None

#4 CONCURRENT proccesess are running.
CELERYD_CONCURRENCY = 4

# specify location of log files
CELERYD_LOG_FILE="/var/log/celery/celery.log"

CELERY_ALWAYS_EAGER = True

CELERY_IMPORTS = (
    'xxx.celerydir.cron_tasks.deprov_cron_script',

                )

CELERYBEAT_SCHEDULE = {
    'deprov_cron_script': {
    'task': 'xxx.celerydir.cron_tasks.deprov_cron_script.check_deprovision_vms',
    'schedule': crontab(minute=0, hour=17),
    'args': ''
    }
}

Я запускаю службу сельдерея с помощью команды nohup (это запустит это в фоновом режиме).

 nohup celery beat -A xxx.celerydir &

person Abdul Majeed    schedule 30.11.2016    source источник
comment
Насколько это много? это нормально, что каждый рабочий Celery занимает около 150 МБ в ОЗУ.   -  person Cesar Canassa    schedule 30.11.2016
comment
это занимало 80% на 2 ГБ ОЗУ (через 5,6 дней).   -  person Abdul Majeed    schedule 30.11.2016
comment
Это может быть утечка памяти в вашей программе Python / Django. В вашей программе используются большие списки или словари? Он предназначен только для Python или в нем есть модули, написанные на C?   -  person Antonis Christofides    schedule 30.11.2016
comment
Код - это чистый питон, но с использованием большого списка, например 5000 объектов. На этом сервере больше ничего не работает, кроме сельдерея. Я думаю, что мне что-то не хватает в конфигурации.   -  person Abdul Majeed    schedule 30.11.2016
comment
ВЫВОД команды для проверки использования ресурсов процессом. # top -H -p 19531 19531 root 20 0 857m 405m 8068 S 0,0 21,6 8: 19,07 [сельдерея] b 19538 root 20 0 857m 405m 8068 S 0,0 21,6 0: 00,28 / usr / bin / python   -  person Abdul Majeed    schedule 01.12.2016
comment
Показано использование памяти 21,6%.   -  person Abdul Majeed    schedule 01.12.2016


Ответы (1)


Пройдя через документацию. Я узнал, что DEBUG имеет значение True в настройках.

Просто измените значение DEBUG в настройках.

ССЫЛКА: https://github.com/celery/celery/issues/2927.

person Abdul Majeed    schedule 21.12.2016