# Analyse comparative d'une implémentation IoT exécutée sur un cluster

> Vous vous demandez quelle efficacité et quelle rapidité un cluster peut apporter à votre système IoT ? Jetez un œil à notre comparaison.

![Analyse comparative d'une implémentation IoT exécutée sur un cluster](https://tago.io/og/fr/blog/benchmark-analysis-iot-implementation-cluster.png)

Dans des articles précédents, nous avons abordé les [avantages des clusters IoT](https://tago.io/blog/iot-edge-cluster-increasing-reliability/) et la façon dont ils peuvent offrir disponibilité et évolutivité, entre autres bénéfices. Nous allons maintenant voir comment ils se comportent lorsqu'ils sont exécutés sur du matériel précis. Dans cet article, nous avons testé trois configurations avec une configuration matérielle identique afin d'évaluer les performances CPU des solutions globales utilisées pour faire fonctionner une application IoT.

## Le matériel

Pour cette analyse comparative, nous avons utilisé le matériel suivant :

**Radxa ROCK Pi 4 Go de RAM** 16 Go 6 Go **Stockage** 256 Go HDeMMC : NCEMASLD-32G

![Radxa ROCK Pi 4 Go de RAM](../images/benchmark-analysis-iot-implementation-cluster/vfLAnBurGygP0iCtLw7wzrjJpEk.png)

**Mac Mini M1**

**Processeur Apple M1 8 cœurs, double Cortex-A72** à 1,8 GHz et quadruple Cortex-A53 à 1,4 GHz

![Processeur Apple M1 8 cœurs, double Cortex-A72](../images/benchmark-analysis-iot-implementation-cluster/hgMTtNZGdrr3yNkUTbnllF8cVxY.webp)

Mac Mini M1 et Radxa ROCK Pi 4B (Source : [Radxa](https://rockpi.org/))

## **La configuration**

Comme mentionné précédemment, il y avait trois configurations. Dans les trois, le Mac mini envoyait des requêtes HTTP avec trois variables par requête au ROCK Pi.

### TagoCore avec SQLite

1x **ROCK Pi** avec base de données SQLite exécutant TagoCore.

1x **Mac mini** comme simulateur d'appareil

![Cas de configuration cluster TagoCore avec SQLite](../images/benchmark-analysis-iot-implementation-cluster/Uhu7DEkVDBNlFlXkHTKErjRA0MQ.png)

### TagoCore avec PostgreSQL externe

1x **ROCK Pi** exécutant TagoCore.

1x **Mac mini** comme simulateur d'appareil avec base de données PostgreSQL

![Configuration cluster TagoCore avec PostgreSQL externe](../images/benchmark-analysis-iot-implementation-cluster/o2FBbe8JMht3wQYepZNL6vHN2tU.png)

### Cluster TagoCore avec PostgreSQL externe

3x **ROCK Pi** exécutant TagoCore en cluster.

1x **Mac mini** comme simulateur d'appareil avec base de données PostgreSQL

Les requêtes étaient réparties à l'aide d'un load balancer, qui équilibrait la charge entre les trois ROCK Pi grâce à l'algorithme round robin.

![Cluster TagoCore avec PostgreSQL externe](../images/benchmark-analysis-iot-implementation-cluster/ndN7hfgxkjyugwbNGDlFp7qxYGE.png)

## **Les résultats**

Nous avons évalué trois scénarios dans lesquels nous avons modifié la fréquence d'entrée des données (requêtes par minute) tout en maintenant tous les autres facteurs constants.

**Premier scénario :** 1 600 requêtes par minute,

**Deuxième scénario :** 5 200 requêtes par minute,

**Troisième scénario :** 10 400 requêtes par minute.

### Premier scénario

Dans le premier scénario, comme le montre le graphique ci-dessous, la différence entre le cluster et les deux autres configurations est notable. TagoCore exécuté en cluster utilise presque 20 % de CPU en moins que le cas exécutant TagoCore avec SQLite, et près de 12 % de moins que TagoCore avec PostgreSQL externe.

On remarque également la différence entre le premier cas et le deuxième, où le premier cas avec SQLite sur le ROCK Pi a utilisé plus de CPU que celui avec PostgreSQL externe.

![Comparaison des résultats avec un cluster pour les applications IoT](../images/benchmark-analysis-iot-implementation-cluster/htZ0SJjrOTEDXHdINUKhyfae9E.png)

### Deuxième scénario

Dans le deuxième scénario, maintenant que nous avons haussé le rythme et envoyé 5 200 requêtes par minute, l'écart s'est creusé. Au lieu de 12 %, la différence est désormais de 15 % de CPU en moins avec le cluster qu'avec le seul ROCK Pi accompagné de PostgreSQL externe.

![Deuxième scénario : comparaison des résultats avec un cluster pour les applications IoT](../images/benchmark-analysis-iot-implementation-cluster/TaklJdmD0IJAX2O5F8EIqOlW05U.png)

### Troisième scénario

Il est curieux de noter que même dans ce dernier cas, où le Mac mini a envoyé 10 400 requêtes par minute, le pourcentage d'utilisation du CPU reste inférieur à 30 % pour chaque ROCK Pi.

![Troisième scénario : comparaison des résultats avec un cluster pour les applications IoT](../images/benchmark-analysis-iot-implementation-cluster/DfXe0LpL1osudo7sk0ZRtzwrNo.png)

## **Vaut-il la peine d'implémenter un cluster pour les applications IoT ?**

Dans la plupart des cas, le cluster surpasse l'exécution de TagoCore sur un seul ROCK Pi, car une baisse importante de l'utilisation du CPU est notable avec une configuration en cluster. Cette baisse de l'utilisation du CPU s'explique sans doute par l'équilibrage de charge et l'usage de trois ordinateurs au lieu d'un seul.

Il vaut donc la peine d'implémenter un cluster IoT si vous recherchez de meilleures performances pour votre application IoT.

Cela dit, implémenter un cluster pour une application IoT peut s'avérer difficile pour certains, mais heureusement c'est là que TagoCore, la plateforme IoT gratuite et open source de TagoIO, entre en jeu pour vous aider ! Les utilisateurs de TagoCore peuvent implémenter sans effort des clusters au sein de leur environnement IoT, alors profitez de notre plateforme open source dotée de fonctionnalités de cluster !

Pour en savoir plus sur TagoCore et sur la façon de l'implémenter en cluster, consultez notre webinaire « [Installing and Configuring TagoCore on edge devices](https://tago.io/events/tagocore-webinar-2-3-installing-and-configuring-on-edge-devices/) » et visitez le [site web de TagoCore.](https://tagocore.com/)

[llms.txt](https://tago.io/llms.txt)
