| Scroll Ignore | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
Connaitre les consommation des
sondeschecks afin de pouvoir dimensionner ses Pollers quand on rajoute des hôtes
Quand on a mis en place un échantillon représentatif de son infrastructure en supervisionTraditionnellement dans un projet de supervision, on commence par mettre en supervision un parc représentatif de l'ensemble de son infrastructure. Une fois cet échantillon représentatif en place, il est utile de savoir quelles quelle va être la consommation CPU quand on mettra une fois l'ensemble de son infrastructure en place. Dans une architecture avec des royaumes, il est important de prévoir un dimensionnement par royaume. supervisée.
Prenons comme exemple le cas où on supervise deux clients, partiellement déployés, avec chacun son royaume isolé:
- Royaume customer-a, déployé à 10%
- Royaume customer-b, déployé à 20%
On se pose la question du nombres de CPUs qui seront nécessaires une fois que 100% du parc sera supervisé.
Chaque royaume étant isolé, chacun a ses propres Pollers, et donc sa propre consommation CPU.
| Info |
|---|
Il est important de noter qu'ici qu'on extrapole en partant du principe qu'on rajoutera le même type d'éléments, dans les mêmes proportions. Si le déploiement préliminaire était sur un type d'élément ( exemple: windows ) et que la suite est composée d'éléments totalement différents ( exemple: équipement réseaux ), alors l'extrapolation ne sera pas concluante car les checks de ces éléments ne sont pas les mêmes et leur consommation CPU également. |
Pour cela, on va Pour cela, nous allons extraire des informations issues de la commande shinken-scheduler-export-data afin d'avoir:
- le nombre de CPU CPUs utilisés sur par les Pollers par checks pour chaque royaume
Pour cela, nous Nous allons avoir besoin d'un dump une extraction de données avec en option une prévision de la charge sur une période représentative, disons par exemple 1 heure. Il suffit alors de lancer la commande comme ceci:
| Code Block | ||
|---|---|---|
| ||
shinken-scheduler-export-data --export-type=sizing-pollers --simulation-extra-period=3600simulate-scheduling-for-X-seconds=3600 |
L'importation du fichier .csv généré est décrit dans la page suivante : shinken-scheduler-export-data : export des données du Scheduler
| Info |
|---|
Avec ce lancement , les noms ( hôte, check, commandes et royaumes ) ne seront pas présents dans l'export. Il est tout à fait possible de faire l'analyse sur un export avec les noms en ajoutant l'option --full si vous voulez faire une autre analyse avec le même fichier . |
--anonymous, des hash des noms des royaumes seront utilisés au lieu des noms finaux. Pour retrouver le nom des royaumes, on peut prendre l'UUID d'un hôte qui a ce royaume, et trouver son nom via l'interface de visualisation ou de configuration. ( Voir la page TIPS - Récuperer l'UUID d'un élement ( Cluster / Hôte ) ) |
Création du tableau récapitulatif sur la consommation totale des temps CPU
des royaumes respectifspar royaume
Consolidation des données: utilisation d'un tableau croisé dynamique
L'objectif de l'exemple suivant est d'avoir la consommation CPU des Pollers pour les royaumes : All et customer.
A partir des On va devoir procéder à une consolidation des nombreuses données de checks que nous avons, nous allons devoir procéder à une consolidation obtenues afin d'avoir notre obtenir un résultat facilement exploitable. Pour cela nous allons utiliser un on va utiliser la fonctionnalité d'Excel : le tableau croisé dynamique.
Un tableau croisé dynamique dans un tableur est un outil de analyse de données qui vous permet de créer une vue synthétique et facile à lire d'une grande quantité de données ( ici nos exécutions de checks ).
On y choisi les données à inclure, choisi comment les organiser et comment les synthétiser, puis filtrer, classer et totaliser les données en fonction de nos besoins.
Création du tableau croisé dynamique
La création du tableau récapitulatif passe par la création d'un Tableau croisé dynamique. Depuis votre Feuille d'importation des données, il faut cliquer sur Insertion→ Tableau croisé dynamique, et valider:
| Panel |
|---|
Obtenir la consommation CPU totale par royaume
Sélection des royaumes en tant que lignes de notre tableau
Arrivé sur la nouvelle feuille, Excel demande quelles lignes sélectionnernous propose de sélectionner les lignes de notre nouveau tableau, dans le bloc de droite "Champs de tableau croisé dynamique".
Dans notre cas, il faut ce sera nos royaumes. Il faut donc faire glisser le champ realm ( ou bien realm_anonymous_hash si on a une version anonyme de l'export ) vers le bloc "Lignes":
| Panel |
|---|
On obtient alors la base de notre tableau, avec des données qui seront désormais organisées par royaume.
Sélection des "Valeurs": le cpu_time, le temps consommé par les
sondeschecks
A chaque ligne/royaume, il faut lui assigner une ( ou plusieurs ) "Valeurs". Pour cela, on fait glisser le champ "cpu_time" vers le bloc "Valeurs" afin d'avoir pour chaque royaume son champs champ cpu_time associé.
Par contre, par défaut, Excel prends par défaut le nombre d’occurrences du champ cpu_time comme "Valeur", ce qui n'est pas ce qui est souhaité:
| Panel |
|---|
Avec ce choix par défaut, Excel nous montre que nous avons prévu de lancer 5250 checks dans l'heure sur le royaume customer-a, et 15750 sur le customer-b.
Ceci n'est pas utile pour notre analyse, car ne nous apprends pas quelle est leur consommation CPU réelle. On doit donc passer d'un nombre d’occurrences à une "Somme" des valeurs pour chaque royaume.
Passer du nombres de lignes avec "cpu_time" à une vrai somme des temps CPU
Une modification des "Paramètres des champs de valeurs" est nécessaire sur "Nombre de cpu_time" qu':
- il faut changer
- le type de calcul de "Nombre" à "Somme"
- puis dans un second temps on en profite pour changer le titre de la colonne en "Somme de temps CPUS utilisés par royaume" via "Nom personnalisé"
| Panel |
|---|
On obtient ainsi pour chaque royaume la somme de temps CPU utilisé pour l'ensemble des checks, sur la période voulue ( ici une heure ).
Passer du nombre total de temps CPU consommé au nombre de CPU nécessaires
Ceci fait, le tableau obtenu permets d'avoir le temps CPU utilisé pour l'ensemble des sondes, par royaume, sur la période utilisée pour l'export ( ici 1 heure = 3600 secondes )Les valeurs de temps CPU cumulés par royaume n'est pas encore facilement lisible pour notre analyse.
Afin d'avoir le nombre de CPU nécessairenécessaires, il faut revenir à l'échelle d'une seconde, et donc rajouter une nouvelle colonne avec comme valeur la "Somme de cpu_timetemps CPUS utilisés par royaume" divisée par 3600 (secondes, soit une heure correspondant à notre extraction), et ce pour chaque ligne:
| Panel |
|---|
Dans notre cas d'exemple, l'environnement a beaucoup de marge et ne consomme largement moins qu'un seul CPU.
Suivant votre nombre de CPU présent sur tous les Pollers ( la somme des CPUs ) du royaume que vous examinez
Le Total général des CPUs utilisés est utile à titre informatif, mais ce sont surtout les valeurs par royaumes qui sont intéressantes.
Tableau final avec le nombres de CPUs utilisés par royaume
Une fois le calcul effectué, voici le tableau final obtenu:
| Panel |
|---|
Il indique le nombre de CPUs utilisés par royaume pour notre plateforme.
Analyse des résultats
Le tableau final obtenu, on peut procéder à notre analyse.
Sur le tableau, on peut voir clairement notre consommation actuelle de CPUs pour chaque royaume:
- 0,36 CPUs pour le premier royaume ( customer-a )
- 1,10 CPUs pour le second royaume ( customer-b )
On était partis d'une hypothèse sur l'état d'avancement du remplissage des royaumes:
- Royaume customer-a, déployé à 10%
- Royaume customer-b, déployé à 20%
On peut alors extrapoler notre consommation finale une fois toute l’infrastructure supervisée.
| Info |
|---|
Pour rappel, l'extrapolation n'est possible que si on rajoute le même type d'éléments ( dans les mêmes proportions ) dans le futur. |
En partant du principe que l'on rajoute le même type d'éléments que ce que nous avons actuellement ( afin d'avoir les mêmes checks, et donc la même consommation CPU ), on arrive sur une consommation finale suivante:
- Royaume customer-a: 0,36*10 = 3.6 CPUs
- Royaume customer-b: 1.10*5 = 5.5 CPUs
On aura donc besoin au final par royaume d'une allocation de:
- 4 CPUs pour le ( ou les ) poller(s) du royaume customer-a
- 6 CPUs pour le ( ou les ) poller(s) du royaume customer-b
- Si le nombre trouvé est inferieur au nombre de CPUs , votre infrastructure est correctement dimensionné.
- Si le nombre est supérieur, ils faut certainement que vous rajoutiez des Pollers.





