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