Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Scroll Ignore
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmltrue
Panel
titleSommaire

Table of Contents
stylenone

Connaitre les consommation des

sondes

checks 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 que l'ensemble de son infrastructure en place. Dans une architecture avec des royaumes, il est important de prévoir un dimensionnement par royaumesera supervisée.

Prenons comme exemple le cas où on a 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 que l'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.

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 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
themeEmacs
shinken-scheduler-export-data --export-type=sizing-pollers --simulationduration-extrascheduling-periodsimulation=3600
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.

L'importation du fichier .csv généré est décrit dans la page dans FOR SHINKEN TEAM - shinken-scheduler-export-data : export des données du Scheduler

Création du tableau récapitulatif sur la consommation totale des temps CPU

des royaumes respectifs

par 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 nombreuses données de checks que nous avons, nous allons devoir procéder à une consolidation afin d'avoir notre résultat facilement exploitable. Pour cela nous allons On va utiliser un tableau croisé dynamique.

Info
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

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.

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

sondes

checks

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.

Cependant, ceci ne nous apprends pas quelle est leur consommation CPU réelle, on doit donc passer d'un nombre d’occurrences à une "Somme"

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
en Somme pour donner au final "Somme de cpu_time" :
Panel

Image Removed

Passer du nombre total de temps CPU consommé au nombre de CPU nécessaires

  • 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"
Panel

Image Added

On obtient ainsi pour chaque royaume la somme de Ceci fait, le tableau obtenu permets d'avoir le temps CPU utilisé pour l'ensemble des sondes, par royaumechecks, sur la période utilisée pour l'export voulue ( ici 1 une heure = 3600 secondes ).

Passer du nombre total de temps CPU consommé au nombre de CPU nécessaires

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 c'est 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

Image Added

Il indique le nombre de CPUs utilisés par royaume.

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.