Как изменить параллелизм рабочих Celery в приложении Django
Недавно я заметил, что сельдерей съедает много памяти на сервере. Один экземпляр съедает около 10% памяти
В обработке я вижу вполне стандартную ситуацию:
/usr/local/bin/python -m celery -A apps worker -l INFO -c 4 --logfile celery_worker.log
При использовании потоков доходит до 14 экземпляров
Моя идея состояла в том, чтобы уменьшить параллелизм до 2 (из процесса я предлагаю установить его на 4)
Я пытался сделать это в настройках django
CELERY_WORKER_CONCURRENCY = 2
и событие помещается в файл сельдерея
app.conf.update(
task_soft_time_limit=60 * 60 * 1, # 2 hours,
task_time_limit=60 * 60 * 2, # 3 hours,
worker_concurrency=2 # 2 workers
)
Но это не сработало. Я проверил его с помощью
celery -A apps inspect stats
"max-concurrency": 4,
"max-tasks-per-child": "N/A",
но, например, таймаут был установлен правильно
Можете ли вы предложить, как решить эту проблему?