ApacheBench, una sencilla herramienta para testear servidores web


Mucha gente desconoce que al instalarse un servidor Apache no sólo pueden servir páginas, sino que gracias a ApacheBench también pueden medir el rendimiento de su servidor, o de cualquier otro (aunque no use Apache). Y una de sus principales ventajas es su extrema sencillez, ya que no hay más que ejecutar el comando ab con un par de parámetros para obtener información muy útil.

Por ejemplo, con esta simple instrucción:

ab -n 100 -c 10 https://www.genbetadev.com/

generaríamos 100 llamadas a la web de Genbeta Dev, distribuidas en 10 hilos. Precisamente esta capacidad de concurrencia nos permitirá comprobar condiciones de carrera o bloqueos, ya que el comportamiento de las peticiones es más natural que si se realizan las 100 seguidas en un bucle.


Los resultados obtenidos al ejecutar el anterior ejemplo son los siguientes:

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
 
Benchmarking www.genbetadev.com (be patient)…..done
 
Server Software:        nginx/0.7.65
Server Hostname:        www.genbetadev.com
Server Port:            80
 
Document Path:          /
Document Length:        117491 bytes
 
Concurrency Level:      10
Time taken for tests:   67.020 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      11794800 bytes
HTML transferred:       11749100 bytes
Requests per second:    1.49 [#/sec] (mean)
Time per request:       6702.019 [ms] (mean)
Time per request:       670.202 [ms] (mean, across all concurrent requests)
Transfer rate:          171.86 [Kbytes/sec] received
 
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       59  277 377.3    107    1117
Processing:   779 6216 5759.9   4791   37478
Waiting:      110  328 552.0    176    3922
Total:        876 6493 5822.2   5380   38521
 
Percentage of the requests served within a certain time (ms)
  50%   5380
  66%   6488
  75%   7425
  80%   8405
  90%  11955
  95%  15668
  98%  30385
  99%  38521
 100%  38521 (longest request)

Como veis, nos reparte la información para poder ver el mínimo, máximo, la media y la moda de las mediciones, así como posibles errores o el total de datos descargados. Y, por supuesto, para no producir desviaciones en las analíticas web, ApacheBench utiliza un user agent específico que es ignorado por la mayoría de proveedores de estadísticas, aunque debéis ser cuidadosos si usáis Webalizer o AWStats, donde sí que se podrían introducir sesgos.

Por supuesto, al igual que el servidor en sí, ApacheBench es software libre, y se distribuye bajo los términos de la Licencia Apache.

Más información | Manual del comando ab
En GenbetaDev | Apache 2.4 HTTP Server disponible con mejoras de rendimiento adaptándose a los tiempos modernos

Portada de Genbeta