Могу ли я установить максимальное задание или максимальное ограничение памяти для пулов Gevent? - PullRequest
0 голосов
/ 29 марта 2020

Мы используем celery для запуска асинхронных задач для сайта Django.

Текущая рабочая настройка: -pool=prefetch с --max-memory-per-child 5120000. Максимальный порог памяти важен, потому что наши задачи имеют утечку памяти.

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

Однако ни параметр max-memory-per-child, ни параметр max-tasks-per-child не поддерживаются для потоковых пулов выполнения. В документации сказано ( source ):

поддержка пула: prefork

Это любая другая конфигурация сельдерея, которая может помочь мне ограничить максимальное количество рабочей памяти и / или принудительно перезапускать работника после выполнения x задач или это единственный вариант перезапустить работника с помощью cron?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...