Dimensionnement du matériel
Ce sujet décrit le dimensionnement de la plateforme qui s'applique à la méthode de déploiement Appliance/VM.Vous pouvez utiliser ce déploiement aussi bien en mode autonome qu'en mode Haute Disponibilité (HA).
Ce sujet vous aide à choisir le bon dimensionnement de ressources matérielles pour votre déploiement IoT. Vous pouvez évaluer combien une plate-forme ThingPark Enterprise peut vous coûter avant d'acheter votre équipement.
Cas 1 - Vous souhaitez acheter des ressources matérielles pour un déploiement IoT cible pour la première fois. Pour en savoir plus, voir Cas 1 - Déterminer le dimensionnement matériel pour un déploiement IoT cible.
Cas 2 - Vous avez déjà du matériel et vous voulez savoir si le dimensionnement répond aux exigences de votre nouveau déploiement IoT. Pour en savoir plus, voir Cas 2 - Déterminer la capacité de déploiement maximale du dimensionnement matériel actuel (ou cible).
ThingPark Enterprise requiert l'utilisation du jeu d'instructions AVX du processeur.
Pour confirmer que vos hôtes (les trois nœuds en cas de HA) supportent les instructions AVX, exécutez la commande suivante :
grep -i avx /proc/cpuinfo
La présence d'un ou plusieurs indicateurs AVX dans la sortie indique que le processeur supporte ces instructions.
Si aucun indicateur AVX n'est trouvé, cela signifie que le processeur ou la configuration système (par exemple, dans un environnement virtualisé) ne les supporte pas.
Déploiement autonome
Le tableau suivant décrit les exigences de dimensionnement matériel selon votre déploiement IoT pour chaque segment de dimensionnement matériel (de Petit à XXL). Il vous donne le nombre de passerelles et de capteurs, et le taux de trafic uplink/downlink LoRaWAN®.
| Petit (S) | Moyen (M) | Grand (L) | Très Grand (XL) | Double Très Grand (XXL) | |
|---|---|---|---|---|---|
| Passerelles | Jusqu'à 10 | Jusqu'à 100 | Jusqu'à 200 | Jusqu'à 500 | Jusqu'à 1 000 |
| Capteurs | Jusqu'à 2 000 | Jusqu'à 20 000 | Jusqu'à 50 000 | Jusqu'à 100 000 | Jusqu'à 300 000 |
| Taux de trafic moyen (uplink + downlink, msg/sec) | 1 | 6 | 15 | 30 | 90 |
| Taux de trafic en pointe (msg/sec) (1) | 3 | 18 | 37,5 | 60 | 135 |
| Req. HW Score minimum CPU (2) | 16 000 | 30 000 | 46 000 | 80 000 | 113 000 |
| Req. HW Marque CPU minimum (indicatif) (3) | 2 280 | 3 400 | 4 680 | 7 400 | 10 040 |
| Req. HW RAM (GB) | 8 | 12 | 16 | 32 | 64 |
| Req. HW Opérations d'écriture sur disque/sec (moyenne/pointe) | 45/100 | 80/300 | 140/500 | 280/1000 | 650/1�500 |
| Req. HW Opérations de lecture sur disque/sec (moyenne/pointe) | 20/500 | 40/1000 | 70/1500 | 140/2500 | 325/7500 |
| Req. HW Taille de stockage (Go) (4) | 90 | 100 | 110 | 130 | 200 |
| Req. HW TBW (5) sur 5 ans | 1 | 5 | 12 | 25 | 65 |
| Exemple de catégorie de dimensionnement AWS EC2 | m5.large + volume gp2 | m5.xlarge + volume gp2 | m5.xlarge + volume gp2 | m5.2xlarge + volume gp3 | m5.4xlarge + volume gp3 |
| Exemple de catégorie de dimensionnement Azure VM | D2asv4 + SSD premium | D4asv4 + SSD premium | D4asv4 + SSD premium | D8asv4 + SSD premium | D16asv4 + SSD premium |
| Exemple de dimensionnement de vCPU (6) | 2 vCPU | 4 vCPU | 4 vCPU | 8 vCPU | 32 vCPU |
(1) La charge de pointe (paquets uplink et downlink par seconde) ne peut pas être maintenue plus d'une minute.
(2) Le score CPU peut être évalué via le script de benchmark matériel de ThingPark, qui est inclus dans la distribution d'image TPE auto-hébergé.
(3) La marque CPU indicative se réfère à la "Marque CPU Moyenne" montrée dans le PassMark CPU list. Cette valeur sert d'indication à la gamme de modèles CPU requis sur une appliance autonome pour chaque segment de dimensionnement de la plate-forme. Le dimensionnement CPU définitif doit être validé par rapport au score CPU minimal de ThingPark évalué via le script de benchmark HW.
(4) Se réfère à l'espace de stockage disponible. Par exemple, si RAID1 est utilisé pour un petit segment, la Plateforme doit avoir deux disques de 90 Go chacun.
(5) Les TeraBytes écrits (TBW) sont une métrique de fiabilité pour mesurer la durée de vie d'un SSD.
(6) En supposant un processeur Intel Xeon Platinum 8175M ou 8259CL @ 2,50GHz.
Déploiement en Haute Disponibilité
Déployer ThingPark Enterprise auto-hébergé en mode haute disponibilité nécessite un cluster de 3 nœuds :
-
Deux nœuds identiques (appelés nœuds PRIMAIRES) dimensionnés selon la capacité ciblée. Chaque nœud PRIMAIRE doit respecter les segments de dimensionnement présentés dans le tableau précédent.
-
Un troisième petit nœud (appelé nœud arbitre) agissant comme arbitre de base de données pour prévenir les problèmes de split brain.
Bien qu'il soit fortement recommandé de déployer les trois nœuds dans trois locations géographiques différentes pour réduire le risque d'accidents (incendies) ou de catastrophes naturelles, les exigences suivantes doivent être assurées entre les différents nœuds du cluster haute disponibilité :
- La latence doit être inférieure à 10 millisecondes.
- La bande passante entre serveurs doit être d'au moins 1 Gbps.
Le tableau suivant fournit les exigences de dimensionnement du nœud arbitre :
| Exigence matérielle | Tous les segments de dimensionnement sauf XXL | Double Très Grand (XXL) |
|---|---|---|
| Score CPU minimum (1) | 10 000 | 14,125 |
| Indice CPU minimum (indicatif) (2) | 925 | 1,255 |
| RAM (Go) | 2 | 4 |
| Opérations d'écriture sur disque/sec (moyenne/pic) | 35/125 | 81/188 |
| Opérations de lecture sur disque/sec (moyenne/pic) | 18/625 | 41/938 |
| Taille de stockage (Go) (3) | 16 | 25 |
| TBW (4) sur 5 ans | 3 | 8 |
| Exemple de catégorie de dimensionnement AWS EC2 | t3.small + volume gp2 | c5.large + volume gp2 |
| Exemple de catégorie de dimensionnement Azure VM | F2sv2 + SSD premium | Standard_A1_v2 + SSD premium |
| Exemple de dimensionnement vCPU (5) | 1 vCPU | 1 vCPU |
(1) Le score CPU peut être évalué via le script de benchmark matériel de ThingPark, inclus dans la distribution d'image TPE auto-hébergé.
(2) La référence CPU indicative se réfère à la "Marque CPU Moyenne" de PassMark référencée par PassMark Software - CPU Benchmarks.
(3) Se réfère à l'espace de stockage disponible. Si RAID1 est utilisé, le nœud doit avoir deux disques de 20 Go chacun.
(4) Les TeraBytes Écrits (TBW) sont une mesure de fiabilité utilisée pour évaluer la durée de vie du SSD.
(5) Supposant un processeur Intel Xeon Platinum 8175M ou 8259CL @ 2.50GHz.
Déterminer le dimensionnement matériel pour un déploiement IoT cible
-
Déterminer le nombre cible de passerelles et de capteurs pour votre déploiement IoT.
-
En fonction du profil de trafic attendu de vos capteurs, déduisez le nombre moyen total de messages par seconde attendu pour votre déploiement. Le profil de trafic attendu correspond au nombre moyen de messages uplink/downlink échangés par jour entre le capteur et le réseau cœur ThingPark).
-
À partir des paramètres de conception cible définis dans les étapes 1 et 2, choisissez le segment de dimensionnement minimum répondant à tous les objectifs de conception :
-
Pour un déploiement avec quatre passerelles, 1200 capteurs et 0,6 messages par seconde, le segment de dimensionnement minimal doit être Petit (S).
-
Pour un déploiement avec 50 passerelles, 8000 capteurs et deux messages par seconde, le segment de dimensionnement minimal doit être Moyen (M).
-
-
Lisez les ressources matérielles minimales requises pour le segment de dimensionnement cible dans les exigences de dimensionnement matériel présentées dans le tableau précédent :
-
Si vous avez accès à l'appliance ou l'environnement de déploiement cible, nous vous recommandons d'exécuter un benchmark matériel pour évaluer la performance CPU effective de votre serveur de déploiement. Pour en savoir plus, consultez Exécuter un benchmark du matériel.
-
Si vous ne pouvez pas exécuter le benchmark matériel sur votre appliance cible ou votre environnement de déploiement, utilisez l'indice CPU minimum pour déterminer quels modèles de CPU conviennent pour chaque segment. Pour ce faire, comparez l'indice CPU minimum (indicatif) défini dans les tableaux ci-dessus avec l'indice CPU moyen référencé par la liste CPU PassMark.
-
Déterminer la capacité de déploiement maximale du dimensionnement matériel actuel (ou cible)
-
Déterminez votre segment de dimensionnement :
-
Soit en exécutant le benchmark matériel. Pour en savoir plus, consultez Exécuter un benchmark du matériel.
-
Ou en comparant votre capacité matérielle avec le Cas 1 - Déterminer la dimension matérielle pour un déploiement IoT cible montré dans le tableau précédent. Votre capacité matérielle correspond au CPU à travers « Indice CPU moyen » référencé par la liste CPU PassMark, la RAM, les opérations d'écriture sur disque par seconde et la capacité de stockage.
-
-
Lisez les quatre premières lignes affichées dans le tableau précédent pour déterminer le nombre maximal de passerelles, de capteurs et de charge de trafic supportés par votre segment de dimensionnement.
-
Si le dimensionnement actuel ne répond pas à vos exigences de déploiement cible, mettez à jour votre matériel vers le bon segment de dimensionnement. Par exemple, si votre segment de dimensionnement actuel est "S" alors que vous avez une moyenne de 2 messages par seconde, le bon segment de dimensionnement est "M".
Exécuter un benchmark du matériel
Vous pouvez évaluer votre ressource matérielle à tout moment :
-
Après avoir acheté votre équi
-
Si vous souhaitez vérifier que votre déploiement IoT existant a le dimensionnement matériel adéquat.
Pour ce faire, vous pouvez utiliser l'une des procédures suivantes :
Utilisation du script de benchmark ThingPark Enterprise
-
Installez l'ISO ThingPark Enterprise sur le serveur ciblé.
-
Ouvrez une session SSH en utilisant l'utilisateur support.
-
Assurez-vous que Docker est arrêté :
systemctl stop docker. -
Exécutez
tpebench.shpour un standalone ThingPark Enterprise OCP outpebench.sh --node2 <IP tpe_node2> --node3 <IP tpe_node3>pour un ThingPark Enterprise OCP with High Availability. Le mot de passe de support pour chaque nœud pourrait être demandé pendant l'exécution.
Le benchmark ne doit pas être exécuté depuis le Terminal Cockpit.
La capture suivante montre un exemple de sortie du script :
$ tpe-bench.sh --node2 192.168.250.17 --node3 192.168.250.18
TPE-Bench on node 2. The support password could be required
Connection to 192.168.250.17 closed.
TPE-Bench on node 2 : Download report. The support password could be required
tpe-bench.out.yaml 100% 974KB 116.6MB/s 00:00
TPE-Bench on node 3. The support password could be required
Connection to 192.168.250.18 closed.
TPE-Bench on node 3 : Download report. The support password could be required
tpe-bench.out.yaml 100% 90KB 19.7MB/s 00:00
##################################################################################################
#
# Node 1 bench
#
##################################################################################################
#################################################
TPE services seem to be running.
Bench results may be affected.
TPE should be stopped before running the script.
#################################################
Get the meta informations
Get the hardware informations
Get the sysbench informations
CPU model: Intel(R) Xeon(R) Gold 6226R CPU @ 2.90GHz
CPU score: M (45991)
RAM: M(15.6 G)
Disk size: XL (157 G)
Disk write score: XXL(3578 w/s)
Disk read score: L(4247 r/s)
Server segment is M
Detailed result: tpe-bench.out-node1.yaml
##################################################################################################
#
# Node 2 bench
#
##################################################################################################
#################################################
TPE services seem to be running.
Bench results may be affected.
TPE should be stopped before running the script.
#################################################
Get the meta informations
Get the hardware informations
Get the sysbench informations
CPU model: Intel(R) Xeon(R) Gold 6226R CPU @ 2.90GHz
CPU score: L (46872)
RAM: M(15.6 G)
Disk size: L (125 G)
Disk write score: XXL(3203 w/s)
Disk read score: L(4039 r/s)
Server segment is M
Detailed result: tpe-bench.out-node2.yaml
##################################################################################################
#
# Node 3 bench
#
##################################################################################################
#################################################
TPE services seem to be running.
Bench results may be affected.
TPE should be stopped before running the script.
#################################################
Get the meta informations
Get the hardware informations
Get the sysbench informations
CPU model: Intel(R) Xeon(R) Gold 6226R CPU @ 2.90GHz
CPU score: XXL (45585)
RAM: S-M-L-XL (2.9 G)
Disk size: S-M-L-XL (20 G)
Disk write score: XXL (1073 w/s)
Disk read score: XXL (78343 r/s)
Server segment is S-M-L-XL
Detailed result: tpe-bench.out-node3.yaml
Pour chaque nœud, le segment du serveur est montré. Lorsque le dimensionnement matériel d'un serveur est réduit, le message est "Segment de serveur non compatible". Consultez Dimensionnement matériel pour plus d'informations.
Utilisation de sysbench sans installer ThingPark Enterprise
Vous pouvez mesurer la capacité de votre serveur sans installer l'ISO ThingPark Enterprise.
Remarque: le serveur doit exécuter une distribution Linux et sysbench doit être installé.
Par exemple, sur Debian/Ubuntu : apt install sysbench.
-
Assurez-vous qu'aucun autre poste de charges ne soit en cours d'exécution sur le serveur.
-
Test CPU :
-
Exécutez la commande suivante :
sysbench --threads=50 --time=10 --events=0 cpu run -
Comparez le score CPU minimum indiqué dans le tableau précédent avec la valeur "nombre total d'événements" (dans la section "Statistiques générales") à partir de la sortie sysbench.
-
-
Test IO :
-
Accédez à un répertoire sur le périphérique cible avec suffisamment d'espace disque.
-
Préparez le test en exécutant
sysbench fileio --file-total-size=10G prepare. -
Exécutez
sysbench --threads=50 --time=10 --events=0 --file-total-size=1G --file-test-mode=rndwr --file-extra-flags=direct --file-fsync-all=on fileio run -
Comparez les « opérations disque par seconde (écriture/s) » du tableau ci-dessus avec la valeur « écritures/s » (dans la section « Opérations sur fichiers ») de la sortie sysbench.
-
Nettoyage :
sysbench fileio --file-total-size=10G cleanup
-