Planification des capacités et mise à l'échelle d' PoP en auto-hébergement

Planifiez la capacité de votre déploiement Synthetic PoP en gestion autonome et faites évoluer l' PoP e pour prendre en charge une charge de travail croissante. La taille et les ressources requises pour l' PoP nt de la charge de travail, notamment du nombre de tests synthétiques, de la fréquence d'exécution des tests et de la complexité des scripts de test.

Prévision de charge

Un bon plan de capacité garantit de meilleures performances et une plus grande stabilité au moindre coût. Instana fournit des repères concernant les différentes tailles d' PoP s et l'allocation des ressources, sur la base de mesures et de projections issues de tests de performance standard d' IBM s réalisés dans un environnement contrôlé. Le débit ou les performances réels varient en fonction de nombreux facteurs. Suivez ces étapes pour améliorer les performances d' PoP :

  • Prévoyez une allocation de ressources suffisante en fonction de la charge de travail et de l'estimation de la taille de l' PoP.
  • Surveillez l'état de santé d' PoP s à l'aide de l'agent d' Instana dans un environnement de production.
  • Faites évoluer à la demande certains moteurs de lecture afin de faire face à une charge de travail croissante.

Si vous utilisez l'allocation par défaut des ressources CPU et mémoire pour une exécution de test « Synthetic » ( PoP, ), assurez-vous que votre cluster Kubernetes dispose d'au moins un processeur à 6 cœurs et de 4.8 Go de mémoire disponibles dans ses ressources physiques. Vous pourrez alors exécuter 2 000 tests « API Simple », 100 tests « API Script », 15 tests « Browser Script » et 2 000 tests ISM ( SSL / DNS ), sur la base des tests de performance réalisés avec la configuration suivante :

Type de test Fréquence Durée Complexité nombre de tests
Test d'API simple 1 minute ~ 200 ms 2 000
Test de script d'API 5 minutes ~ 800 ms Lancer 5 appels « HTTP » 100
Test de script de navigateur 15 minutes ~ 20 secondes Ouverture de 2 pages Web 30
SSL test 1 minute ~ 240 ms 2 000
DNS test 1 minute ~ 240 ms 2 000

Pour installer l'agent Instana afin de surveiller votre PoP ou pour faire évoluer votre PoP afin d'améliorer ses performances, des ressources physiques supplémentaires doivent être disponibles dans le cluster Kubernetes.

L'estimation de la taille PoP et de l'allocation de ressources est effectuée en effectuant des tests avec le test synthétique constant et la fréquence de test, comme indiqué dans le tableau, à l'aide des demandes de ressources et des limites de la configuration par défaut de chaque composant. Pour plus d'informations sur la configuration par défaut des composants de l' PoP e synthétique, consultez PoP helm charts. De même, pour plus d'informations sur la configuration par défaut de l'agent Instana et du capteur Kubernetes ( K8 ), consultez les graphiques de l'agent helm. Le nombre de répliques de moteur de simulation est calculé en fonction du nombre de tests et de leur fréquence d'exécution. Le nombre d'agents d' Instana s est calculé en fonction du nombre de nœuds de travail d' Kubernetes. Dans la configuration par défaut, le nombre de capteurs d' Kubernetes s est fixé à 3. Avec 3 répliques de capteurs « Kubernetes », vous pouvez surveiller jusqu'à 400 nœuds.

Exigences en matière d'espace disque

Le tableau suivant répertorie l'espace disque minimum requis par taille d' PoP pour le déploiement initial. Ces exigences sont définies par nœud de travail et concernent l'installation d' K3s, l'installation d' Helm, le stockage des images de conteneurs et les données des composants principaux de Synthetic PoP.

Pour une configuration par défaut PoP (processeur : 300m, mémoire : 300Mi ), l'utilisation réelle du disque mesurée est la suivante :

  • K3s Taille du fichier d'installation : environ 1 Go
  • Helm Taille du fichier d'installation : environ 1 Go
  • Pods d' PoP s synthétiques (tous les conteneurs) : environ 7 Go
  • Total : environ 9 Go
PoP taille Espace disque minimum par noeud Noeuds worker Espace disque minimum total Détails de l'utilisation
xsmall 50 Go 1 50 Go K3s (environ 1 Go), Helm (environ 1 Go), conteneurs PoP (environ 7 Go), mémoire tampon (environ 41 Go)
Petit 100 Go 3 300 Go K3s (environ 1 Go), Helm (environ 1 Go), conteneurs PoP (environ 20 Go), mémoire tampon (environ 78 Go) par nœud
Moyen 200 Go 3 600 Go K3s (environ 1 Go), Helm (environ 1 Go), conteneurs PoP (environ 40 Go), mémoire tampon (environ 158 Go) par nœud
Grand 400 Go 6 2,4 To K3s (environ 1 Go), Helm (environ 1 Go), conteneurs PoP (environ 80 Go), mémoire tampon (environ 318 Go) par nœud
Remarque : ces valeurs constituent des références pour la planification des achats d'infrastructure. L'espace disque effectivement utilisé pour une configuration par défaut PoP est d'environ 9 Go, ce qui inclut K3s, Helm et tous les conteneurs Synthetic PoP. L'utilisation effective de l'espace disque augmente en fonction de la fréquence d'exécution des tests, du volume des journaux, du nombre de cibles surveillées et des politiques de conservation. L'espace tampon sert à stocker les fichiers journaux, les données temporaires et les données liées à la gestion du système. Surveillez régulièrement l'utilisation du disque et augmentez la capacité lorsque celle-ci dépasse 70 % afin de garantir des performances optimales.

Installation XS - Tester les capacités d' PoP

L'installation de XSmall est prise en charge à des fins de test ou de démonstration. Pour utiliser la configuration par défaut, si votre cluster Kubernetes dispose d'un processeur à 6 cœurs et d' 4.8 Go de mémoire dans ses ressources physiques, vous pouvez alors exécuter 10 tests « API Simple », 5 tests « API Script », 1 test « Browser Script » et 10 tests ISM ( SSL / DNS ), sur la base des tests de performance de référence réalisés avec une configuration de test constante.

Pour surveiller les tests de performance synthétiques ( PoP ) à l'aide de l'agent d' Instana, assurez-vous que le cluster Kubernetes répond aux exigences minimales suivantes :

Ressource Condition requise
Noeuds worker 1
UC 8 coeurs
Mémoire 7.1 GB
Espace disque 50 Go par nœud

Schéma illustrant l'architecture de déploiement d' PoP en version XSmall avec un nœud de travail, comprenant un contrôleur d' PoP, un moteur de Redis et des moteurs de lecture

Petite installation - Production

La petite installation est destinée à la production. Pour utiliser la configuration par défaut, si votre cluster Kubernetes dispose d'un processeur à 6 cœurs et de 4.8 Go de mémoire dans ses ressources physiques, vous pouvez alors exécuter 2 000 tests « API », 20 tests de script « API », 5 tests de script de navigateur et 2 000 tests ISM ( SSL / DNS ), selon les résultats des tests de performance réalisés avec une configuration de test constante.

Pour surveiller les tests de performance synthétiques ( PoP ) à l'aide de l'agent d' Instana, assurez-vous que le cluster Kubernetes répond aux exigences minimales suivantes :

Ressource Condition requise
Noeuds worker 3
UC 12 coeurs
Mémoire 11.7 GB
Espace disque 100 Go par noeud

Schéma illustrant l'architecture de déploiement de Small PoP avec 3 nœuds de travail, comprenant un contrôleur d' PoP, un moteur de Redis et des moteurs de lecture répartis entre les nœuds

Installation de taille moyenne - Production

L'installation de taille moyenne est destinée à la production. Pour prendre en charge cette charge de travail, vous devez étendre horizontalement les moteurs de lecture, ajuster les paramètres du contrôleur d' PoP, et augmenter les limites de CPU et de mémoire. Si votre cluster Kubernetes dispose d'au moins un processeur 28.4-core et de 21.6 Go de mémoire parmi ses ressources physiques, vous pouvez exécuter 3 500 tests API Simple, 250 tests API Script, 80 tests Browser Script et 3 500 tests ISM ( SSL / DNS ), selon les résultats des tests de performance réalisés avec une configuration de test constante.

Pour surveiller les tests de performance synthétiques ( PoP ) à l'aide de l'agent d' Instana, assurez-vous que le cluster Kubernetes répond aux exigences minimales suivantes :

Ressource Condition requise
Noeuds worker 3
UC 34.4 cœurs
Mémoire 28.5 GB
Espace disque 200 Go par noeud

Schéma illustrant l'architecture de déploiement de Medium PoP avec 3 nœuds de travail, comprenant un contrôleur PoP à capacité évolutive, un Redis et plusieurs répliques du moteur de lecture

Grande installation - Production

Une installation de grande taille est destinée à la production. Pour prendre en charge cette charge de travail, vous devez étendre horizontalement les moteurs de lecture, ajuster les paramètres du contrôleur d' PoP, et augmenter les limites de CPU et de mémoire. Si votre cluster Kubernetes dispose d'au moins un processeur à 64 cœurs et d' 48.5 Go de mémoire disponibles dans ses ressources physiques, vous pouvez exécuter 7 000 tests API Simple, 600 tests API Script, 200 tests Browser Script et 7 000 tests ISM ( SSL / DNS ) sur la base des tests de performance de référence avec une configuration de test constante.

Pour surveiller les tests de performance synthétiques ( PoP ) à l'aide de l'agent d' Instana, assurez-vous que le cluster Kubernetes répond aux exigences minimales suivantes :

Ressource Condition requise
Noeuds worker 6
UC 74.5 cœurs
Mémoire 57.7 GB
Espace disque 400 Go par nœud

Schéma illustrant l'architecture de déploiement de Large PoP avec 6 nœuds de travail, comprenant un contrôleur PoP hautement évolutif, un Redis et de nombreuses répliques du moteur de lecture réparties entre les nœuds

Estimer la taille d' PoP s à l'aide d'un outil d'automatisation

Instana fournit un outil d'automatisation, synctl, qui vous aide à estimer la taille de l' PoP et à planifier la capacité. Vous pouvez utiliser l'outil comme illustré dans les exemples suivants:

synctl get pop-size

synctl get size
 

Mise à l'échelle par augmentation

Pour prendre en charge l'augmentation des charges de travail, augmentez les composants PoP comme suit:

  • Mise à l'échelle horizontale: une approche plus simple est fournie pour augmenter le nombre de répliques des différents moteurs de simulation.
  • Mise à l'échelle verticale: augmentez les nombres d'UC et de mémoire requests et limits .

Mise à l'échelle horizontale

Actuellement, seuls les moteurs de lecture prennent en charge l'évolutivité horizontale. PoP Controller et Redis ne prennent pas encore en charge l'évolutivité horizontale. La charge de travail PoP se trouve principalement sur les pods du moteur de simulation. Pour prendre en charge davantage de charge de travail sur un certain type de test, vous pouvez augmenter le nombre de replicas dans le fichier values.yaml .

L'exemple suivant montre que les répliques du moteur de lecture JavaScript sont augmentées à 2 et que les répliques du moteur de lecture BrowserScript sont augmentées à 3:

--set javascript.replicas=2
--set browserscript.replicas=3
 

Mise à l'échelle verticale

Etant donné que le moteur de lecture JavaScript et le moteur de lecture BrowserScript consomment beaucoup de ressources, vous pouvez augmenter les nombres d'UC ou de mémoire requests et limits pour prendre en charge davantage de tests.

Par exemple, si les paramètres requests et limits du processeur sont réglés sur 800 m et 1 000 m (Core 0.8/1.0 ) dans le moteur de lecture d' JavaScript, la configuration de test décrite précédemment permet de prendre en charge 40 scripts API.

Optimisation des performances

Pour prendre en charge les charges de travail supérieures à 2000 tests synthétiques par minute, optimisez le contrôleur PoP comme suit:

  • Pour prendre en charge davantage de tests avec les données d'identification de l'utilisateur, réglez le paramètre controller.scheduleTestMaxPoolSize sur une valeur plus élevée. Pour prendre en charge ce paramètre, mettez à niveau vers Synthetic PoP 1.1.2 ou version ultérieure.
  • Pour permettre l'envoi d'un plus grand nombre de résultats au serveur Instana, réglez le controller.publishAARThreadPoolSize paramètre sur une valeur plus élevée.

Si vous réglez les paramètres controller.resources.limits.cpu jusqu'à 500 m, controller.resources.limits.memory jusqu'à 500 miles, controller.publishAARThreadPoolSize jusqu'à 40 ans, et controller.scheduleTestMaxPoolSize Jusqu'à 15, le contrôleur PoP peut prendre en charge 9000 tests API Simple avec les informations d'identification de l'utilisateur par minute.