Pruebas de Carga con AB Apache Benchmark

El presente instructivo tiene como finalidad dar a conocer los pasos fundamentales para efectuar pruebas básicas de carga de peticiones HTTP a servidor Apache con el uso del comando “ab” Apache Benchmark.

Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 8.0 (actualmente estable)

Instalación:

operador@server:~# aptitude install apache2-utils gnuplot


Ejecución comando:

1. Selecciona la URL a probar y ejecute comando:

operador@server:~# ab -k -n1000 -c100 -H 'Accept-Encoding: gzip,deflate' -g datos.csv http://www.example.com.ve/sitio/

Donde:
-k (KeepAlive). Realizar múltiples solicitudes dentro de una sesión HTTP, funcionalidad de los navegadores por la naturaleza
-n (requests). Número total de solicitudes para ejecutar
-c (concurrency). Cantidad de conexiones concurrentes
-g (gnuplot-file). Escribe todos los valores medidos como un ‘gnuplot’
-H ‘Accept-Encoding: gzip,deflate’ (custom-header). Anexar encabezados adicionales a la solicitud. Imita la peticiones típica que un navegador enviará

2. Resultado:

 This is ApacheBench, Version 2.3 
 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
 Licensed to The Apache Software Foundation, http://www.apache.org/

 Benchmarking www.example.com.ve (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
 Completed 1000 requests
 Finished 1000 requests

 Server Software:        Oracle-Application-Server-10g/10.1.2.2.0
 Server Hostname:        www.example.com.ve
 Server Port:            80

 Document Path:          /sitio/
 Document Length:        17225 bytes

 Concurrency Level:      100
 Time taken for tests:   4.666 seconds
 Complete requests:      1000
 Failed requests:        0
 Keep-Alive requests:    0
 Total transferred:      17727285 bytes
 HTML transferred:       17225000 bytes
 Requests per second:    214.31 [#/sec] (mean)
 Time per request:       466.611 [ms] (mean)
 Time per request:       4.666 [ms] (mean, across all concurrent requests)
 Transfer rate:          3710.12 [Kbytes/sec] received

 Connection Times (ms)
               min  mean[+/-sd] median   max
 Connect:        3   14 134.3      7    3013
 Processing:    21  328 364.8    220    2618
 Waiting:       20  211 124.4    202    1429
 Total:         26  342 387.4    230    3250

 Percentage of the requests served within a certain time (ms)
   50%    230
   66%    257
   75%    278
   80%    312
   90%    445
   95%   1384
   98%   1472
   99%   1579
  100%   3250 (longest request)

3. Datos Importantes:

– Requests per second (mean): Cantidad de peticiones por segundo
– Time per request (mean): tiempo promedio en atender grupo de peticiones concurrentes
– Time per request (mean, across all concurrent requests): tiempo promedio en atender una petición

Graficar Resultado con gnuplot

1. En la misma carpeta donde tenemos el archivo “datos.csv”, crear archivo “plot.p”

operador@server:~# nano plot.p

2. Incluir la siguiente información:

 set terminal png size 600
 set output "resultados.png"
 set title "1000 peticiones, 100 peticiones concurrentes"
 set size ratio 0.6
 set grid y
 set xlabel "Nro Peticiones"
 set ylabel "Tiempo de respuesta (ms)"
 plot "datos.csv" using 9 smooth sbezier with lines title "http://www.example.com.ve"
 

3. Generar la gráfica “resultado.png”

operador@server:~# gnuplot plot.p

Enlace:

ab
Apache Benchmark Gnuplot Medir Rendimiento de Servidor Web
Testeando El Rendimiento de Tú- Aplicacion con Apache Bench
Como Hacer Pruebas de Carga Servidores Web
Testing With Apache Benchmark and Siege

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s