El entorno de las habilidades necesarias de Java (linux ab stress test Nginx) (combate)

1. Pruebe el límite de corriente ordinario

1) Configure nginx para limitar el caudal a 1qps y limite la corriente a la dirección IP del cliente (el código de estado de retorno es 503 por defecto), de la siguiente manera:

http{
 limit_req_zone $binary_remote_addr zone=test:10m rate=1r/s;
 
 server {
  listen  80;
  server_name localhost;
  location / {
   limit_req zone=test;
   root html;
   index index.html index.htm;
  }
}

 

2) Iniciar varias solicitudes de forma continua y simultánea; 3) Verificar el registro de acceso al servidor,

Expandelo un poco:

Ventanas:

【1】. Abra el directorio de instalación de nginx.

【2】. Ingrese al directorio de registros.

【3】. Haga doble clic para ver el archivo de registro.

Linux

【1】. Ejecute el comando vi /usr/local/nginx/logs/error.log 

También puede usar 

[registros de root @ localhost] # tail -f access.log

 

Se puede ver que se alcanzaron 4 solicitudes continuamente en 09 segundos y solo se procesó 1 solicitud; se procesó la primera solicitud y se rechazaron las otras 3 solicitudes

2. Prueba de explosión

 1) Cuando el límite de velocidad es de 1qps, las solicitudes que superen la tasa serán directamente rechazadas. Para hacer frente al tráfico en ráfagas, las solicitudes deben estar en cola para su procesamiento, por lo que se configura burst = 5, es decir, un máximo de Se permite poner en cola 5 solicitudes para su procesamiento;

http{
 limit_req_zone $binary_remote_addr zone=test:10m rate=1r/s;
 
 server {
  listen  80;
  server_name localhost;
  location / {
   limit_req zone=test burst=5;
   root html;
   index index.html index.htm;
  }
}

2) Utilice ab para iniciar 10 solicitudes al mismo tiempo, ab -n 10 -c 10 http://127.0.0.1/index.html

3) Verifique el registro de acceso al servidor; según el registro, se procesó la primera solicitud, se rechazaron cuatro solicitudes de 2 a 5 y se procesaron cinco solicitudes de 6 a 10; ¿por qué es este resultado?

Verifique el módulo ngx_http_log_module del código fuente nginx, cada solicitud registrará el controlador en la etapa NGX_HTTP_LOG_PHASE (la última etapa del procesamiento de solicitudes HTTP imprime el registro [incluye procesamiento normal y procesamiento de excepciones]);

El procesamiento anormal se generará antes que el registro de procesamiento normal.

Por lo tanto, la situación real debería ser así: 10 solicitudes llegan al mismo tiempo, la primera solicitud llega y se procesa directamente, la segunda a la sexta solicitudes llegan y el procesamiento se retrasa en la cola (un procesamiento por segundo); la séptima las solicitudes hasta el décimo se rechazan directamente. Por lo tanto, imprima primero el registro de acceso;

Las solicitudes de la segunda a la sexta (procesamiento de demora de cola) se procesan cada segundo, y el registro de acceso se imprime después de que se completa el procesamiento, es decir, se procesa una solicitud cada segundo en 18 a 22 segundos;

4) El tiempo de respuesta de las estadísticas ab es el siguiente, el tiempo de respuesta mínimo es de 1 ms, el tiempo de respuesta máximo es de 5002 ms y el tiempo de respuesta promedio es de 1502 ms:

3 nodos de prueba

1) 2 muestra que después de configurar la ráfaga, aunque las solicitudes de ráfaga se pondrán en cola para su procesamiento, el tiempo de respuesta es demasiado largo y es posible que el cliente haya agotado el tiempo de espera; por lo tanto, agregue la configuración nodelay para que nginx procese urgentemente las solicitudes en espera para reducir el tiempo de respuesta :

 

2) Utilice ab para iniciar 10 solicitudes al mismo tiempo, ab -n 10 -c 10 http://127.0.0.1/index.html

3) Verifique el registro de acceso al servidor; la primera solicitud se procesa directamente, la segunda a la sexta cinco solicitudes se ponen en cola para su procesamiento (configure nodelay, procesamiento de emergencia nginx), la séptima a décima cuatro solicitudes se rechazan

4) El tiempo de respuesta de las estadísticas ab es el siguiente, el tiempo de respuesta mínimo es de 1 ms, el tiempo de respuesta máximo es de 2 ms y el tiempo de respuesta promedio es de 1 ms:

 

 

Aquí presentamos principalmente algunos usos básicos de la prueba de esfuerzo ab de alta concurrencia. Puede usarla para probar el rendimiento de su propio código.

 

 

Supongo que te gusta

Origin blog.csdn.net/Coder_Boy_/article/details/110427496
Recomendado
Clasificación