Feature

Uma análise de benchmark de implementação de IoT rodando em cluster

Já teve curiosidade sobre a eficiência e a velocidade que um cluster pode dar ao seu sistema de IoT? Confira a nossa comparação.

TagoIO Team ·
Uma análise de benchmark de implementação de IoT rodando em cluster

Em posts anteriores, falamos sobre as vantagens dos clusters de IoT e como eles podem oferecer disponibilidade e escalabilidade, entre outros benefícios. Agora, vamos ver como eles se comportam ao rodar em um hardware específico. Neste post, testamos três configurações com a mesma especificação de hardware para avaliar o desempenho de CPU das soluções usadas na execução de uma aplicação de IoT.

Hardware

Para esta análise de benchmark, usamos o seguinte hardware:

Radxa ROCK Pi 4GB Ram 16GB 6GB Storage 256GB HDeMMC: NCEMASLD-32G

Radxa ROCK Pi 4GB Ram

Mac Mini M1

Processador Apple M1 8-Core CPU Dual Cortex-A72 1.8GHz e quad Cortex-A53 1.4GHz

Processador Apple M1 8-Core CPU Dual Cortex-A72

Mac Mini M1Radxa ROCK Pi 4B (Fonte: Radxa)

A configuração

Como já mencionado, foram três configurações. Em todas elas, o MacBook mini enviou requisições HTTP com três variáveis por requisição para o ROCK Pi.

TagoCore com SQLite

1x ROCK Pi com banco de dados SQLite rodando TagoCore.

1x Mac mini como simulador de dispositivo

Configuração de cluster no caso TagoCore com SQLite

TagoCore com PostgreSQL externo

1x ROCK Pi rodando TagoCore.

1x Mac mini como simulador de dispositivo com banco de dados PostgreSQL

Configuração de cluster TagoCore com PostgreSQL externo

Cluster TagoCore com PostgreSQL externo

3x ROCK Pi rodando TagoCore como cluster.

1x Mac mini como simulador de dispositivo com banco de dados PostgreSQL

As requisições foram divididas usando um load balancer, que distribuiu a carga entre os três ROCK Pi usando o algoritmo round robin.

Cluster TagoCore com PostgreSQL externo

Os resultados

Avaliamos três cenários nos quais alteramos a frequência de entrada de dados (requisições por minuto) mantendo todos os outros fatores constantes.

Primeiro cenário: 1.600 requisições por minuto,

Segundo cenário: 5.200 requisições por minuto,

Terceiro cenário: 10.400 requisições por minuto.

Primeiro cenário

No primeiro cenário, como o gráfico abaixo mostra, a diferença entre o cluster e as outras duas configurações é notável. O TagoCore rodando como cluster usa quase 20% menos CPU do que o caso rodando TagoCore com SQLite, e cerca de 12% menos do que o TagoCore com PostgreSQL externo.

Também chama atenção a diferença entre o primeiro caso e o segundo, em que o primeiro caso com SQLite no ROCK Pi usou mais CPU do que aquele com PostgreSQL externo.

Comparação de resultados usando cluster para aplicações de IoT

Segundo cenário

No segundo cenário, agora que aumentamos o ritmo e enviamos 5.200 requisições por minuto, a diferença cresceu. Em vez de 12%, agora a diferença é de 15% menos CPU com o cluster do que com o único ROCK Pi com PostgreSQL externo.

Segundo cenário comparando resultados usando cluster para aplicações de IoT

Terceiro cenário

É curioso notar que, mesmo neste último caso, em que o Mac mini enviou 10.400 requisições por minuto, o uso de CPU ainda fica abaixo de 30% para cada ROCK Pi.

Terceiro cenário comparando resultados usando cluster para aplicações de IoT

Vale a pena implementar um cluster para aplicações de IoT?

Na maioria dos casos, o cluster supera o TagoCore rodando em um único ROCK Pi, já que há uma queda significativa no uso de CPU ao adotar uma configuração em cluster. Essa redução no uso de CPU se deve provavelmente ao balanceamento de carga e ao uso de três computadores em vez de apenas um.

Portanto, vale a pena implementar um cluster de IoT se você busca melhor desempenho da sua aplicação de IoT.

Ainda assim, implementar um cluster para uma aplicação de IoT pode ser um desafio para alguns, mas é aí que o TagoCore, a plataforma de IoT gratuita e open-source da TagoIO, entra para ajudar! Os usuários do TagoCore conseguem implementar clusters dentro do seu ambiente de IoT sem complicações, então aproveite a nossa plataforma open-source com recursos de cluster!

Para mais informações sobre o TagoCore e como implementá-lo como cluster, confira o nosso webinar “Installing and Configuring TagoCore on edge devices” e visite o site do TagoCore.