2016-11-30 3 views
-1

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

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

# celeryconfig.py 
import os 
os.environ['DJANGO_SETTINGS_MODULE'] = 'xxx.settings' 
# default RabbitMQ broker 
BROKER_URL = "amqp://guest:[email protected]: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 & 
+0

Сколько стоит? это нормально для каждого работника сельдерея, чтобы взять около ~ 150 мб в ОЗУ –

+0

, он занимал 80% для 2 ГБ оперативной памяти (через 5,6 дня). –

+0

Это может быть утечка памяти в вашей программе Python/Django. Использует ли ваша программа какие-либо крупные списки или словари? Является ли он только Python или имеет какие-либо модули, написанные на C? –

ответ

Смежные вопросы