2 votos

NGINX: Comportamiento del límite de tiempo de espera para consultas en la cola (burst)

Actualmente, tenemos una cola de 3000 solicitudes.

location /api/v2 {
     limit_req zone=bursted burst=3000;
     include /etc/nginx/proxy.conf;
 }

El límite de velocidad es de 10 peticiones por segundo.

 limit_req_zone $limit zone=api_slow:10m rate=1r/s;
 limit_req_zone $server_name zone=bursted:10m rate=10r/s;

El tiempo de espera Keep-Alive es de 30 segundos. En otras palabras, 2700 peticiones deberían ser rechazadas con el código de error 408 cada 30 segundos, cuando la cola esté llena.

 reset_timedout_connection on;
 client_body_timeout 10;
 send_timeout 2;
 keepalive_timeout 30;

En horas punta, no pude encontrar ninguna petición en los logs, que fuera rechazada con el código de error 408 por NGINX, debido a un timeout, mientras la petición esperaba en la cola para ser reenviada al contenedor de servlets. Sólo se rechazan con el código de error 503, que corresponde a la sobrecarga de la tasa de solicitudes.

delaying request, excess: 2958.320, by zone "bursted"
limiting requests, excess: 3000.730 by zone "bursted"

¿Rechaza NGINX las peticiones en esas colas por tiempo de espera, si se quedan colgadas demasiado tiempo? ¿Qué es este tiempo de espera? ¿Dónde se configura?

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X