tool test stress example benchmark aws benchmarking load-testing apachebench

benchmarking - example - apache stress test tool



Load Testing with AB... solicitudes fallidas falsas(longitud) (3)

No importa. El "error de longitud" simplemente indica que aproximadamente la mitad del tiempo la duración de la respuesta fue diferente.

Dado que los contenidos son dinámicos, es probable que sea el identificador de la sesión o algo así.

Para hacer algunas pruebas de carga, por mi propia curiosidad, en mi servidor corrí:

ab -kc 50 -t 200 http://localhost/index.php

Esto abre 50 conexiones keep-alive durante 200 segundos y simplemente cierra mi servidor con solicitudes de index.php

En mis resultados, obtengo:

Concurrency Level: 50 Time taken for tests: 200.007 seconds Complete requests: 33106 Failed requests: 32951 (Connect: 0, Receive: 0, Length: 32951, Exceptions: 0) Write errors: 0 Keep-Alive requests: 0 Total transferred: 1948268960 bytes HTML transferred: 1938001392 bytes Requests per second: 165.52 [#/sec] (mean) Time per request: 302.071 [ms] (mean) Time per request: 6.041 [ms] (mean, across all concurrent requests) Transfer rate: 9512.69 [Kbytes/sec] received

Tenga en cuenta las 32951 solicitudes "fallidas". No puedo resolver esto.

Mientras se ejecutaba la prueba, pude acceder a mi sitio web desde la computadora de mi casa perfectamente, aunque los tiempos de carga de la página en la parte inferior de la página se informaron como .5 en lugar de los .02 habituales. Sin embargo, nunca tuve una solicitud fallida.

Entonces, ¿por qué AB informa que la mitad de las conexiones falla? ¿Y qué significa "Longitud:" en ese contexto?

Gracias


Para describir el problema en otras palabras:

La herramienta de evaluación comparativa de apache (ab) asume que la duración del contenido de respuesta será la misma durante toda la prueba. Almacena la duración del contenido de la primera respuesta. Si alguna de las respuestas posteriores tiene una duración de contenido diferente, dan como resultado "fallas de longitud".

El siguiente informe de error de apache parece confirmar que: ASF Bug 42040

Resumen : si está sirviendo cualquier contenido de longitud variable, probablemente debería ignorar este tipo de fallas de solicitud de ab.

Editar : Recientemente noté que el comando ab tiene una nueva opción (al menos para mí):

-l Accept variable document length (use this for dynamic pages)

Puedo verlo en la versión 2.3 <$ Revision: 1528965 $> pero no puedo verlo en la versión 2.3 <$ Revisión: 655654 $> , por lo que probablemente se agregó hace relativamente poco tiempo.


Perdón por resucitar una vieja pregunta, pero fue la primera que apareció en Google. A veces, el error de longitud informado por ab puede deberse a un problema real: si la conexión se cierra desde el servidor antes de que el cliente no haya recibido la cantidad total de bytes declarados en el encabezado Content-Length. Eso puede suceder si hay otras partes entre el cliente y el servidor, por ejemplo, equilibradores de carga artesanales ingenuos (mi caso).