Gunicorn: Pregunta: ¿Qué sucede si todos los trabajadores están ocupados y llega una solicitud?

Creado en 28 ene. 2019  ·  3Comentarios  ·  Fuente: benoitc/gunicorn

Sospecho que tampoco:

  • la solicitud se bloquea hasta que un trabajador está libre, o
  • la solicitud falla (por ejemplo, con una respuesta de tiempo de espera de puerta de enlace HTTP 504 directa o un cierre de conexión que se informa como un tiempo de espera de puerta de enlace HTTP 504 por un proxy ascendente como Nginx)

(Estoy intentando publicar esta pregunta en la lista de correo de Gunicorn, pero no pude encontrar instrucciones claras sobre cómo hacerlo directamente. Por lo tanto, es de esperar que crear un problema de Github sea la ruta correcta).

Question Discussion

Todos 3 comentarios

Es un buen lugar para ello :) Puede encontrar información allí: http://docs.gunicorn.org/en/stable/design.html

de todos modos dependerá. Con Gunicorn detrás de NGINX, incluso el trabajador de sincronización puede aceptar múltiples conexiones. Manejará N solicitudes al mismo tiempo (donde N es el número de trabajadores) mientras que puede tener muchos esperando en el búfer nginx. En la mayoría de los casos, esto es suficiente para ejecutar un sitio web muy grande con más de 10K conexiones simultáneas.

Para otros usos tienes los trabajadores asíncronos. Si bien NGINX o cualquier proxy capaz de almacenar en búfer las conexiones continuará ayudando a estos trabajadores, Gunicorn podrá manejar más conexiones simultáneas o mantener algunas conexiones abiertas durante mucho tiempo.

Espero haber respondido a tu pregunta.

Para responder solo sobre Gunicorn:

La configuración del backlog especifica qué tan profundo es el backlog de escucha del sistema operativo. Si la acumulación está llena, el sistema operativo rechazará la solicitud y la puerta de enlace tendrá una falla en la conexión ascendente. Si el trabajo pendiente no está lleno, el sistema operativo abrirá la conexión, pero Gunicorn no la manejará hasta que un trabajador de Gunicorn esté listo para aceptar la solicitud. La puerta de enlace puede devolver un tiempo de espera de flujo ascendente si Gunicorn no maneja la solicitud rápidamente.

Si encuentra que tiene muchos tiempos de espera de flujo ascendente y está ejecutando con un proxy inverso frente a Gunicorn, es posible que desee reducir la acumulación para que su proxy pueda fallar de manera más eficiente.

Gracias amigos. Estas respuestas ayudan.

¿Fue útil esta página
0 / 5 - 0 calificaciones