ICM / herramientas / La herramienta Vegeta Benchmark

La herramienta Vegeta Benchmark

29 enero 2022 | Marc Carbó

En la entrada de hoy,  vamos a hablar de uno de los elementos indispensables para cualquier administrador de sistemas: una herramienta de testeo de carga. Estás herramientas nos permiten lanzar peticiones HTTP contra un dominio/servidor específico, para poder evaluar cuál es el impacto y detectar si el servidor cumple los requisitos para soportar la carga de las peticiones. También sirven para detectar cuáles son los límites que tiene ese servidor.

Entre todos los HTTP load testers que hay disponible, hay uno que en el equipo de ICM nos llamó la atención, más por la nostalgia que por otra cosa. Es el “Vegeta Benchmark” (sí, lo has leído bien).

Vegeta Benchmark

Este pequeño pero potente tester es completamente gratuito y cumple su función con creces, aunque solamente está disponible para MAC OS y para Linux. Puesto que carece de interfaz gráfica, lo usaremos mediante línea de comandos.

Haremos una pequeña lista de algunos de los flags de dicho benchmark:

-cpu int: Por defecto usa todas las CPU que tiene el servidor, pero con este flag podemos limitar la cantidad de CPU que utilizará.

-connections int: Por defecto mantiene un total de 10.000 conexiones abiertas al mismo tiempo, pero con este flag podemos especificar el número exacto que queremos.

-duration=int: Especificamos el tiempo máximo de ejecución del ataque, pero el número 0 tiene el valor de infinito.

-rate value: Número de peticiones al servidor web por unidad de tiempo, donde cero equivale a infinito y por defecto son 50 peticiones por segundo.

-resolvers value: Listado de direcciones IP bajo la estructura “IP:puerto”, separado por comas, que va a utilizar para la resolución de DNS. Mantener deshabilitado en caso de usar DNS internos.

vegeta benchmark

Ejemplo de Vegeta Benchmark

Este sería un ejemplo del comando a utilizar en Vegeta Benchmark:

echo «GET http://localhost» | vegeta attack -duration=5s | tee resultado.bin | vegeta report

El “echo” determina el tipo de petición que realizará “vegeta attack”, el “tee” guardará en un fichero el resultado y el “vegeta report” lo sacará por pantalla de forma que sea entendible.

También podemos generar una gráfica del resultado final usando el fichero que hemos generado antes, además del comando “vegeta plot” de la siguiente forma:

cat resultado.bin | vegeta plot > resultado.html

Para conocer mejor esta potente herramienta, recomendamos ir al enlace siguiente dónde se encuentra el proyecto: GitHub – tsenart/vegeta: HTTP load testing tool and library. It’s over 9000!

Vegeta benchmark es modesto y liviano, pero eso no es algo negativo, ya que consigue su propósito a la perfección: poner al límite el servidor.