Prueba de carga en tu página web con Apache Bench (ab)

Ya sea como uno de los pasos durante el diseño,  previo al paso a  producción o cualquier otro escenario, es habitual la necesidad de poder realizar mediciones sobre la cantidad de páginas que nuestro servidor web podrá servir.

Este tipo de pruebas, también conocidas como  stress test o pruebas de estrés, son especialmente útiles a la hora de dimensionar nuestros servidores.

En esta entrada utilizaremos la herramienta Apache Bench.

Cabe destacar que Apache Bench no es amistosa a la hora de probar nuestra página web, podemos provocar un denial of service si realizamos demasiadas peticiones concurrentes, por lo que te recomendamos realizar varios test empezando por algunos poco exigentes y de ahí ir subiendo mientras monitorizas el servidor.

Instalar ab

Revisa si en tu sistema tienes instalada la herramienta «ab» ya que por defecto no es habitual que venga instalada.

Esta prueba es conveniente que la realices desde fuera del servidor web, a ser posible en las condiciones más similares a tu escenario real. Puede ser desde tu propio ordenador o una máquina virtual.

Si el sistema es Ubuntu 16.04 o está basado en él, puedes instalarlo de la siguiente manera:

sudo apt-get install apache2-utils

Si el sistema desde el que vas a lanzar la prueba es un sistema Centos 7 / RHEL 7 o basado en estos sistemas, instala apache bench de la siguiente manera:

yum install -y httpd-tools

Web Server Stress Test

Lanzar una prueba con Apache Bench

Vamos a realizar una prueba sencilla. Queremos saber el comportamiento de nuestra página cuando hay 100 peticiones con 10 usuarios concurrentes.

ab -c 10 -n 100 https://www.administradortotal.org.es/

Indicamos con «-c» el número de conexiones concurrentes que queremos y con «-n» el número total de peticiones que haremos en esta prueba.

Resultado

Como se puede ver en el ejemplo, la salida de la prueba es muy interesante, teniendo los datos necesarios para realizar un buen informe, en caso necesario.

Server Software: Apache/2.4.18
Server Hostname: www.administradortotal.net
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128

Document Path: /
Document Length: 26262 bytes

Concurrency Level: 10
Time taken for tests: 12.682 seconds
Complete requests: 100
Failed requests: 0
Total transferred: 2651100 bytes
HTML transferred: 2626200 bytes
Requests per second: 7.88 [#/sec] (mean)
Time per request: 1268.243 [ms] (mean)
Time per request: 126.824 [ms] (mean, across all concurrent requests)
Transfer rate: 204.14 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 265 298 24.0 293 390
Processing: 428 932 243.5 956 1409
Waiting: 160 527 213.6 490 1022
Total: 719 1230 248.3 1246 1721

Percentage of the requests served within a certain time (ms)
50% 1246
66% 1366
75% 1440
80% 1463
90% 1548
95% 1601
98% 1719
99% 1721
100% 1721 (longest request)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *