tool test stress example benchmark apachebench

apachebench - test - Apache Bench: Mean vs Mean en todas las solicitudes concurrentes



apache stress test tool (2)

Aquí hay un ejemplo del resultado de una prueba de ab. Realizo 1000 peticiones que con 3 peticiones concurrentes.

C:/>ab -d -e a.csv -v 1 -n 1000 -c 3 http://www.example.com/index.aspx This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/ Benchmarking www.m-taoyuan.tw (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Finished 1000 requests Server Software: Microsoft-IIS/6.0 Server Hostname: www.m-taoyuan.tw Server Port: 80 Document Path: /index.aspx Document Length: 25986 bytes Concurrency Level: 3 Time taken for tests: 25.734375 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 26372000 bytes HTML transferred: 25986000 bytes Requests per second: 38.86 [#/sec] (mean) Time per request: 77.203 [ms] (mean) Time per request: 25.734 [ms] (mean, across all concurrent requests) Transfer rate: 1000.72 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 4.4 0 15 Processing: 62 75 9.1 78 109 Waiting: 46 64 8.0 62 109 Total: 62 76 9.3 78 109

Como puede ver, hay dos campos de Tiempo por solicitud .

  • Tiempo por solicitud (media)
  • Tiempo por solicitud (media, en todas las solicitudes concurrentes)

Por favor, verifique primero el campo Tiempo de prueba . El valor es de 25.734375 segundos, que es de 25734.375 ms .

Si dividimos 25734.375 ms por 1000 , obtendrá 25.734 [ms], que es exactamente el valor del campo Tiempo por solicitud (media, en todas las solicitudes concurrentes) .

Para el Tiempo por solicitud (media) , el valor es 77.203 [ms] . El valor es un poco más largo que el tiempo por solicitud (es decir, en todas las solicitudes simultáneas) . Esto se debe a que la (media) se cuenta por cada solicitud específica y calcula su tiempo promedio.

Déjame darte un ejemplo simple.

Supongamos que hacemos 3 solicitudes con 3 conexiones concurrentes. El tiempo necesario para las pruebas será de 90 ms y cada solicitud será de 40 ms, 50 ms, 30 ms. Entonces, ¿cuál es el valor de estos dos tiempos por solicitud ?

  • Tiempo por solicitud (media) = (40 + 50 + 30) / 3 = 40ms
  • Tiempo por solicitud (media, en todas las solicitudes concurrentes) = 90/3 = 30 ms

Espero que puedas entenderlo. :)

¿Cuál es la diferencia entre esos 2 campos? :

  • Tiempo por solicitud (media)
  • Tiempo por solicitud (media, en todas las solicitudes concurrentes)

¿Cómo se calcula cada uno de ellos?

Salida de muestra:

Time per request: 3953.446 [ms] (mean) Time per request: 39.534 [ms] (mean, across all concurrent requests)

¿Por qué hay mucha diferencia?


Sería útil ver su entrada, pero creo que la salida le dice que no hay ahorro de tiempo para realizar solicitudes concurrentes.

El tiempo por solicitud (media) le indica la cantidad promedio de tiempo que tomó procesar un grupo concurrente de solicitudes.

El tiempo por solicitud (es decir, en todas las solicitudes concurrentes) le indica la cantidad promedio de tiempo que tomó para que una sola solicitud se procesara por sí misma.

Si procesó 100 solicitudes al mismo tiempo, tomó 3953.446 ms.

Si los procesara individualmente, tomaría 39.534 ms * 100 = 3953.4 ms.

Mismo número. No hay ahorro de tiempo para realizar solicitudes simultáneas (al menos para el número total de solicitudes que probó).