@mjkhail-luginin

Что такое воркеры в gunicorn?

Всем привет, не могу понять что конкретно такое воркеры в гуникорне. Несколько вопросов:

1 воркер занимает 1 ядро? т.е 1 воркер = 1 ядро?
сколько максимум воркеров я могу поставить и как это скажется на железе?
порой сталкивался с ошибкой critical worker timeout, когда не понимал за них вообще ничего, исправил проблему увеличением кол-ва воркеров и времени таймаута. вопрос таков: каким образом воркер занимает себя какой-то "работой"? и как сделать так, чтобы один воркер всегда был свободен, и приложение всегда могло занимать его в случае необоходимости?
  • Вопрос задан
  • 371 просмотр
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Воркер - это дочерний процесс, в котором выполняется wsgi-скрипт для обработки полученного http-запроса. Чем больше воркеров, тем больше одновременных запросов можно обработать. Но каждый воркер потребляет ресурсы сервера, так что если их больше, чем запросов, то ресурсы будут тратится впустую.

Ошибка "critical worker timeout" может означать, что wsgi-приложение написано плохо и не способно уложиться в лимиты времени на ответ. Проведите профилирование, чтобы найти причину тормозов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы