Gunicorn: Вопрос: Что произойдет, если все воркеры заняты и поступит запрос?

Созданный на 28 янв. 2019  ·  3Комментарии  ·  Источник: benoitc/gunicorn

Я подозреваю либо:

  • запрос блокируется до тех пор, пока работник не освободится, или
  • запрос не выполнен (например, с прямым ответом на тайм-аут HTTP 504 Gateway или закрытием соединения, о котором вышестоящий прокси, например Nginx, сообщает как тайм-аут HTTP 504 Gateway)

(Я пытаюсь отправить этот вопрос в список рассылки Gunicorn, но мне не удалось найти четких инструкций, как это сделать напрямую. Надеюсь, создание проблемы с Github - правильный путь.)

Question Discussion

Все 3 Комментарий

Это хорошее место для этого :) Вы уже можете найти там некоторую информацию: http://docs.gunicorn.org/en/stable/design.html

в любом случае это будет зависеть. Благодаря Gunicorn за NGINX даже синхронизатор может принимать множественные соединения. Он будет обрабатывать N запросов одновременно (где N - количество рабочих), в то время как у вас может быть много ожиданий в буфере nginx. В большинстве случаев этого достаточно для запуска очень большого веб-сайта с более чем 10K одновременных подключений.

Для других целей у вас есть асинхронные рабочие. В то время как NGINX или любой прокси-сервер, способный буферизовать соединения, будет продолжать помогать, эти рабочие процессы позволят Gunicorn обрабатывать больше одновременных подключений или поддерживать некоторые подключения открытыми в течение длительного времени.

Надеюсь, я ответил на ваш вопрос.

Чтобы ответить только о Gunicorn:

Параметр невыполненной работы указывает, насколько глубока задержка прослушивания ОС. Если отставание заполнено, запрос будет отклонен ОС, и шлюз получит ошибку восходящего соединения. Если отставание не заполнено, соединение будет открыто ОС, но не будет обрабатываться Gunicorn до тех пор, пока рабочий Gunicorn не будет готов принять запрос. Шлюз может вернуть тайм-аут восходящего потока, если Gunicorn не обработает запрос быстро.

Если вы обнаружите, что у вас много тайм-аутов восходящего потока, и вы работаете с обратным прокси-сервером перед Gunicorn, вы можете уменьшить отставание, чтобы ваш прокси-сервер мог более эффективно переключаться при отказе.

Спасибо, ребята. Эти ответы помогают.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги