Dado que me han contactado varios miembros de la comunidad de V7 interesados en Cirrus.js me di a la tarea de realizar un load testing usando Blitz.io, digamos que quería saber hasta donde llega Cirrus.js.
Estos son los datos de las prueba:
Maquina: Amazon EC2 m1.medium con 3.7 Ram con una unidad de procesamiento y 2 cores virtuales, para disco use una EBS con IOPS a 400 (Input Output Per Second), corriendo sobre un Ubuntu Server 12.0.4 lts de 64 bits.
Velneo => version v7.7101
Prueba: => Básicamente atacar la ruta “/tareas” que esta definida en la open app de Cirrus.js que toma 10 registros de la tabla tareas y devuelve un JSON.
Resultados:
CONCLUSIÓN.
Como puede observarse básicamente lo que hace el load testing es atacar con usuarios concurrentes el path “/tareas” el objetivo es estresar el servidor para saber con que tanto puede, el resultado: el vServer muere a los 37 segundos mientras soporta 168 concurrentes repondiendoles a un rate de 118 visitas/segundo con lo que se pudieron lograr 3100 visitas en ese lapso de tiempo y pudiendo servir algo asi como 5.6 Millones de requests por día, después de lo cual comienza a dar timeouts y en consecuencia a disminuir el rate y los promedios.
MAS BUENAS NOTICIAS.
La primera:
Este load testing lo realice previo a unas optimizaciones que pienso implementar en el código de Cirrus.js, así que más velocidad esta por venir.
La segunda:
Esta es la mejor, estuve realizando pruebas y al parecer el vServer corre los puertos TCP cada uno en un Thread (hilo) diferente, lo que significa que al levantar sobre diferentes puertos el objeto TCP en el que corre Cirrus.js puedo multiplicar la concurrencia usando Nginx como un load balancer aprovechando todo el performance de su “Non Blocking I/O” y llevar hasta las nubes la capacidad de carga de Cirrus.js sin problemas de enganches.
Un saludo,
pdata: Cirrus.js ya soporta Cookies y sessiones, muy pronto un post documentando la funcionalidad.


#1 por Elmer el noviembre 15, 2012 - 7:08 pm
Muy interesante.. pues en espera de ver las mejoras….