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.tech.latdev.com/
generaríamos 100 llamadas a la web de tech.lat 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.tech.latdev.com (be patient)…..done Server Software: nginx/0.7.65Server Hostname: www.tech.latdev.comServer Port: 80 Document Path: /Document Length: 117491 bytes Concurrency Level: 10Time taken for tests: 67.020 secondsComplete requests: 100Failed requests: 0Write errors: 0Total transferred: 11794800 bytesHTML transferred: 11749100 bytesRequests 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 maxConnect: 59 277 377.3 107 1117Processing: 779 6216 5759.9 4791 37478Waiting: 110 328 552.0 176 3922Total: 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 tech.latDev | Apache 2.4 HTTP Server disponible con mejoras de rendimiento adaptándose a los tiempos modernos