En blogs anteriores, hablamos sobre las ventajas de los clusters IoT y cómo pueden ofrecer disponibilidad y escalabilidad, entre otros beneficios. Ahora veremos cómo se comportan al ejecutarse en hardware específico. En este blog, probamos tres configuraciones con la misma configuración de hardware para evaluar el rendimiento de la CPU de las soluciones completas usadas al desplegar una aplicación IoT.
Hardware
Para este análisis comparativo, usamos el siguiente hardware:
Radxa ROCK Pi 4GB Ram 16GB 6GB Almacenamiento 256GB HDeMMC: NCEMASLD-32G

Mac Mini M1
Procesador Apple M1 8-Core CPU Dual Cortex-A72 1.8GHz y quad Cortex-A53 1.4GHz

Mac Mini M1Radxa ROCK Pi 4B (Fuente: Radxa)
La configuración
Como ya se mencionó, hubo tres configuraciones. En las tres, el MacBook mini envió solicitudes HTTP con tres variables por solicitud a la ROCK Pi.
TagoCore con SQLite
1x ROCK Pi con base de datos SQLite ejecutando TagoCore.
1x Mac mini como simulador de dispositivos

TagoCore con PostgreSQL externo
1x ROCK Pi ejecutando TagoCore.
1x Mac mini como simulador de dispositivos con base de datos PostgreSQL

Cluster de TagoCore con PostgreSQL externo
3x ROCK Pi ejecutando TagoCore como un cluster.
1x Mac mini como simulador de dispositivos con base de datos PostgreSQL
Las solicitudes se repartieron mediante un balanceador de carga, que distribuyó la carga entre las tres ROCK Pi usando el algoritmo round robin.

Los resultados
Evaluamos tres escenarios en los que modificamos la frecuencia de entrada de datos (solicitudes por minuto) manteniendo constantes todos los demás factores.
Primer escenario: 1.600 solicitudes por minuto,
Segundo escenario: 5.200 solicitudes por minuto,
Tercer escenario: 10.400 solicitudes por minuto.
Primer escenario
En el primer escenario, como muestra el gráfico siguiente, la diferencia entre el cluster y las otras dos configuraciones es notable. TagoCore ejecutándose como cluster usa casi un 20% menos de CPU que el caso que ejecuta TagoCore con SQLite, y casi un 12% menos que TagoCore con PostgreSQL externo.
También es notable la diferencia entre el primer caso y el segundo, donde el primer caso con SQLite en la ROCK Pi usó más CPU que el que tenía PostgreSQL externo.

Segundo escenario
En el segundo escenario, ahora que subimos el nivel y enviamos 5.200 solicitudes por minuto, la diferencia aumentó. En lugar del 12%, ahora la diferencia es del 15% menos de CPU con el cluster que con una sola ROCK Pi con PostgreSQL externo.

Tercer escenario
Es curioso observar que incluso en este último caso, donde el Mac mini envió 10.400 solicitudes por minuto, el porcentaje de uso de CPU sigue siendo inferior al 30% para cada ROCK Pi.

¿Vale la pena implementar un cluster para aplicaciones IoT?
En la mayoría de los casos, el cluster supera a TagoCore ejecutándose en una sola ROCK Pi, ya que se nota una reducción importante del uso de CPU al usar una configuración en cluster. Esta reducción del uso de CPU probablemente se deba al balanceo de carga y al uso de tres equipos en lugar de uno solo.
Por lo tanto, vale la pena implementar un cluster IoT si buscas un mejor rendimiento de tu aplicación IoT.
Aunque implementar un cluster para una aplicación IoT puede ser un reto para algunos, por suerte ahí es donde TagoCore, la plataforma IoT gratuita y de código abierto de TagoIO, entra a ayudar. Los usuarios de TagoCore pueden implementar clusters dentro de su entorno IoT sin complicaciones, así que aprovecha nuestra plataforma de código abierto con funciones de cluster.
Para más información sobre TagoCore y cómo implementarlo como cluster, consulta nuestro webinar “Instalación y configuración de TagoCore en dispositivos edge” y visita el sitio web de TagoCore.


