Interpretación de los límites de ancho de banda de Nginx

Tabla de contenido

introducción básica

Configuración de comando

tasa_límite

límite_tasa_después

Examen práctico

Principio: algoritmo de depósito de tokens


introducción básica

En un entorno de red de alta carga, para mantener la estabilidad del servicio, el límite de velocidad (tasa de descarga) es un método necesario para controlar el volumen de tráfico. Nginx es un servidor web de alto rendimiento y un servidor proxy inverso que puede utilizar las dos instrucciones principales limit_rate_after y limit_rate para lograr control de tráfico y limitación de velocidad.

Como una de las tres funciones principales de la gestión del tráfico NGINX, el control del ancho de banda es relativamente sencillo de implementar. Solo implementa el control del ancho de banda en una única conexión y, a menudo, se usa junto con el control de velocidad y el control de concurrencia para implementar la gestión del tráfico del cliente. 

Desde la perspectiva de la arquitectura NGINX, todo el ciclo de vida de una única conexión se procesa en un proceso de trabajo independiente. Por lo tanto, el control del ancho de banda no requiere compartir ni sincronizar datos entre procesos de trabajo. No es necesario definir una zona de memoria compartida para compartir y sincronizar datos como control de velocidad y control de concurrencia. En base a esto, las instrucciones de control de ancho de banda no tienen las instrucciones para definir el área de memoria compartida requerida para el control de velocidad y el control de concurrencia. 

Configuración de comando

tasa_límite

El comando limit_rate se utiliza para controlar la velocidad de transmisión de datos enviada al cliente, puede limitar el tráfico de toda la conexión o limitar la velocidad de acceso de un solo cliente.

Syntax:limit_rate rate;

Default:limit_rate 0;

Context:http, server, location, if in location

Limita la tasa de datos enviados al cliente en respuesta. La unidad es BYTES por segundo. El valor predeterminado 0 significa que no hay límite de velocidad. Este límite es para cada solicitud de conexión, por lo que si el cliente tiene n conexiones paralelas al mismo tiempo, entonces la tasa general del cliente es n veces limit_rate.

limit_rate 1k;

límite_tasa_después

Después de transmitir una cierta cantidad de BYTES, se implementa el control del ancho de banda. Al igual que la instrucción limit_rate, los siguientes valores de parámetros se pueden configurar mediante variables.

Syntax:limit_rate_after size;

Default:limit_rate_after 0;

Context:http, server, location, if in location

El comando limit_rate_after solo puede tener efecto si limit_rate está configurado. Si solo configura limit_rate_after, no habrá ningún efecto de control de ancho de banda. 

location /test/ {

limit_rate_after 500k;

limit_rate 50k;

}

 Si la directiva sendfile_max_chunk se configura al mismo tiempo, el ancho de banda se controlará en función del menor de los dos valores.

Examen práctico

location / {
	limit_rate 1k;
	root html;
}

 Ingrese en el navegador para http://xxxx/portal.tardescargar el archivo portal.tar y podrá ver que la velocidad de descarga está dentro de 1k

location / {
	limit_rate_after 50m;
	limit_rate 1k;
	root html;
}

  Escriba en el navegador para http://xxxx/portal.tardescargar el archivo portal.tar

Después de descargar 50 m, la velocidad se limita a 1k

Principio: algoritmo de depósito de tokens

NGINX utiliza el algoritmo de depósito de tokens para el control del ancho de banda. Utilice un sesgo de gráfico clásico para describir el algoritmo del depósito de tokens:

El proceso específico es:

  1. El sistema genera tokens a una tasa fija y los almacena en caché en el depósito de tokens.
  2. Cuando el depósito de fichas esté lleno, se descartarán las fichas adicionales.
  3. Al transmitir un mensaje, se consume la cantidad correspondiente de tokens según el tamaño del mensaje.
  4. Cuando no hay suficientes tokens, los mensajes no se pueden transmitir.

El algoritmo del depósito de tokens utiliza un "depósito" para almacenar tokens y una cola para almacenar solicitudes. En términos de función, la diferencia más obvia entre el algoritmo del depósito con fugas y el algoritmo del depósito de tokens es si se permite el procesamiento de tráfico en ráfagas (ráfagas). El algoritmo del depósito con fugas puede limitar por la fuerza la velocidad de transmisión (procesamiento) de datos en tiempo real. y no realiza ningún cambio adicional en el tráfico en ráfaga. Procesamiento, que implementa el control de tráfico (política); mientras que el algoritmo del depósito de tokens puede limitar la velocidad de transmisión promedio de datos al tiempo que permite un cierto grado de transmisión en ráfaga, y realiza la configuración del tráfico ( formación).

Supongo que te gusta

Origin blog.csdn.net/m0_62436868/article/details/133208936
Recomendado
Clasificación