Una buena herramienta para comprobar cuantas peticiones puede soportar nuestro sistema antes de caer es locust. Hay muchas herramientas en el mercado, pero ésta es particularmente potente y fácil de usar.

¿Que es locust?

Locust es un software que permite “atacar” nuestro sistema con el número de peticiones que nosotros le indiquemos. Puede ser interesante lanzar cientos de peticiones por segundo en tiempo real y en paralelo a nuestro sistema para localizar posibles cuellos de botella antes de que lo hagan usuarios reales.

¿Cómo lo instalo?

Si disponemos de python 3 instalado y el gestor de paquetes PIP, ejecutamos:

$  python3 -m pip install locustio

Comprobaremos que está bien instalado ejecutando:

$ locust --version

¿Cómo lo utilizo?

Voy a realizar un ejemplo “atacando” el propio host que hospeda esta WEB que estás leyendo.

Para ello, creo el fichero Python “locustfile.py” (es importante que tenga este nombre, si no es así, lo indicaremos al ejecutar locust):

from locust import HttpLocust, TaskSet

def index(l):
    l.client.get("/")

class UserBehavior(TaskSet):
    tasks = {index: 1}

class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    min_wait = 5000
    max_wait = 9000

Una vez creado el archivo, estando en la misma carpeta que éste, ejecutaremos (con nuestro dominio o IP en lugar de “example.com”):

$ locust --host=http://example.com

Y ya deberíamos poder ver la interfaz web para realizar nuestras pruebas accediendo a través de un navegador web a la URL: http://[IP]:8089/

Test

Voy a realizar un test recreando el acceso simultaneo de 300 usuarios con un Hatch rate (incremento de usuarios por segundo) de 10.
Es un servidor con poca capacidad por lo cual no debería aguantar demasiado, y vamos a comprobarlo.


Resultados

Tras apenas unos 30 segundos vemos como el servidor ha perdido la capacidad de conectarse con la base de datos:

Llegando a un ratio de error superior a un 40%:

Podemos ver la información de forma mas descriptiva visualizando las gráficas generadas:

Y ver las respuestas y excepciones:

Conclusión

La resistencia de una cadena se mide por su eslabón más débil.

San Josémaría Escrivá de Balaguer

Como podéis ver es realmente fácil extraer una conclusión sobre cuanto tráfico puede soportar nuestro sistema antes de colapsar y en base a esto, tomar decisiones sobre si incrementar su capacidad.
Podéis encontrar el ejemplo aquí.

Deja un comentario

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

Translate