Skip to content

ApacheBench, una herramienta que te permite testear el rendimiento de tu aplicación

apache bench

Testear la carga que producirá nuestra aplicación web antes de ponerla en desarrollo es una buena opción, que no todo el mundo realiza, para determinar si nuestro servidor será capaz de soportar todo el tráfico que generen las visitas. Para realizar este test de carga, podemos utilizar varias herramientas que hay para ello en el mercado, pero en nuestro caso de hoy os vamos a explicar cómo utilizar ApacheBench para llevar a cabo esta acción.

Apache, una vez instalado, además de encargarse de servir las páginas web que los usuarios soliciten, ofrece la herramienta ApacheBench, que permite medir el rendimiento de nuestro servidor, siendo una de sus principales ventajas su sencillez a la hora de ser usado, ya que para ello sólo es necesario hacer uso del comando “ab” que nos ofrece Apache, junto con varios parámetros que explicaremos a continuación.

En nuestro caso de hoy, explicaremos la carga que producirá una aplicación web desarrollada por nosotros que será puesta en marcha en un VPS. Partimos de la premisa de que nuestro servidor virtual privado ya tiene instalado Apache.

Como hemos comentado anteriormente, para lanzar el testeo es necesario indicar una serie de parámetros junto al nombre de la aplicación “ab”. Un ejemplo de uso sería el siguiente.

ab -n <num_requests> -c <concurrency> <addr>:<port><path>

Donde:

  • ab: es el nombre de ApacheBench.
  • -n <num_requests>: indica el número de peticiones que se realización.
  • – c <concurrency>: indica el número de peticiones concurrentes que se llevará a cabo durante el testeo.
  • <addr>: nombre de la aplicación que vamos a testear.
  • <port>: puerto donde correrá la aplicación a testear.
  • <path>: ruta hasta llegar a la aplicación a testear.

Además de las anteriores opciones, también se le puede indicar que el resultado sea almacenado en un archivo. Para lograr esto debemos utilizar el parámetro “-g” seguido del nombre del fichero. Por ejemplo:

ab -g fichero.tsv -n <num_requests> -c <concurrency> <addr>:<port><path>

En el caso de nuestro ejemplo, la aplicación estará funcionando en local en el puerto 4567, donde se le indicará que tendrá 1000 peticiones y 100 peticiones concurrentes. Para ello ejecutaremos lo siguiente desde la consola de nuestro VPS.

ab -n 1000 -c 100 http://localhost:4567/

El resultado que obtendremos de esa ejecución será algo similar a lo siguiente.

Lo más importante de estos resultados es lo siguiente:

  • Request per second: son las peticiones atendidas por segundo durante el test.
  • Time per request: tiempo empleado por el servidor en atender una petición individual.
  • Time per request (mean, across all concurrent requests): tiempo empleado por el servidor en atender un grupo de peticiones concurrentes.

Estos datos no reflejan el rendimiento del servidor, ya que hay otros factores que pueden hacer variar la respuesta, pero sí que nos puede servir como orientación para saber el comportamiento que tendrá nuestra aplicación en la máquina donde esté funcionando.

Published inComunicados

Be First to Comment

Deja un comentario

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