jeudi 8 janvier 2015

GRAF - Anticiper la charge d'un système d'information - fin

Les performances dépendent pas seulement de la consommation en CPU. Elle sont également dûes au débit aux termes d’entrées-sorties. 

Ce débit peut également être mesurée avec l’utilitaires NMON puis être extrapolé avec le VAT de GRAF.

Lorsque l’on effectue la mesure d’un traitement, on comptabilise le nombre d’IO générées lors de l’exécution du traitement, que l’on divise ensuite par le nombre d’objet traités.

Dans le fichier NMON

  1. On crée une variable M_IO  qui contient toutes les valeurs de la colonne  IO/sec de l’onglet DISK_SUM du fichier NMON.
  2. On crée une variable M_Heure_IO qui contient toutes les dates de l’onglet DISK_SUMM.
  3. On rajoute l’onglet « Mesure » qui contient les valeurs suivantes (On a dans cet exemple effectué 2 mesures sur un batch de facturation) :

Batch
Output
Unité O
Début
Durée
Fin
IO brut
IO
IO par output
Facturation
179
Postes
28/11/2014 13:15:52
43,157
28-11/2014 13:16:35
26368,6
25867,8673
144,5132252
Facturation
179
Postes
28/11/2014 13:28:52
62,79
28-11/2014 13:29:55
50046,2
49545,4673
276,7903201

Le nombre d’IO brut est fourni par la formule matricielle :

{SOMME(M_IO*SI(M_Heure_IO>=[Début];1;0)*SI(M_Heure_IO<=[Fin] ;1;0))}

Pour éliminer le « bruit » de fond, on calcule un nombre d’IO « net » :

[IO Brut] - MOYENNE(M_IO)

Puis on divise par le nombre d’objets métiers analysés au cours du traitement, soit dans l’exemple un nombre d’IO moyen par ligne de facture égal à 211.

Dans le VAT

Les plages, les serveurs, les composants et les macroflux ayant été renseignés comme dans l’article http://vincentlacroixgraf.blogspot.fr/2014/12/graf-anticiper-de-la-charge-dun-systeme.html, il nous reste à compléter l’onglet « traitements » en remplissant pour chaque traitement considéré, la colonne « SAN ». avec le nombre d'IO moyen par objet métier mesuré.


On actualise les données de l’onglet « X_SAN_t », puis on affiche le graphique de l’onglet « G_SAN_t ».


vendredi 2 janvier 2015

GRAF - Anticiper la charge d'un système d'information - suite

Afin de pouvoir simuler la charge d’un système d’information avec la méthode décrite dans l’article précédent (Cf  http://vincentlacroixgraf.blogspot.fr/2014/12/graf-anticiper-de-la-charge-dun-systeme.html), il faut être en mesure de mesurer la consommation CPU unitaire moyenne des différents traitements.

Pour cela il est nécessaire de :
  1. Choisir les objets métiers représentatifs des flux à mesurer.
  2. Préparer l’échantillon, en notant le nombre d’objets métier utilisés dans l’échantillon
  3. Choisir l’outil de mesure.
  4. Être capable de noter l’heure de début et la durée du traitement de l’échantillon.

Les objets métier représentatifs
Afin d’obtenir une mesure représentant  fidèlement la moyenne, il est préférable de choisir des objets « atomiques », pour lesquels la charge traitement varie peu d’un objet à l’autre. Par exemple, on choisira de préférence la « ligne de facture » plutôt que la facture elle-même, car cette dernière peut contenir un nombre de lignes très variable.
Il faut ensuite, dans l’étude de volumétrie, être en mesure de dénombrer le nombre d’objets métier qui devront être traités à la cible (Cf. l’article précédent sur l’utilisation du VAT).

Préparer l’échantillon
Comme dans les sondages d’opinion, plus la quantité d’objets métier est importante, plus la mesure de la moyenne est fiable. Le nombre minimal d’objets que l’échantillon doit contenir tourne autour de la cinquantaine.

Choisir l’outil de mesure
Suivant l’application considérée, on pourra utiliser :
un outil de monitoring système tel que NMON (LINUX) ou Perfmon (Windows)
un outil de monitoring applicatif comme Solution Manager de SAP (Transaction ST03)

Exemple

Dans notre exemple, nous allons utiliser NMON, qui mesure l’activité des CPU vue par le système d’exploitation. Il faut pour cela effectuer le test de mesure sur un environnement « silencieux », c'est-à-dire qui est dédié à la mesure au moment du test. Par exemple on réservera un environnement de recette ou de développement pendant la durée de la mesure.

NNOM construit un fichier Excel avec plusieurs onglets. l’onglet intéressant est l’onglet CPU_ALL, qui contient, pour chaque période de temps, le pourcentage moyen d’occupation des CPU.

NMON peut être paramétré de façon à ce qu’une période de temps ait une durée d’une seconde. 1% d’occupation est alors équivalent à une charge d’un centième de seconde sur le CPU.

Rappelons que dans la méthode d’utilisation du VAT présentée dans l’article précédent, on utilise la milliseconde comme unité de consommation CPU.

L’obtention, pour chaque seconde de temps de la charge consommée sur l’ensemble des CPU en milisecondes est fournie par :

%occupation_CPU * 10 * Nombre_CPU

Dans le fichier NMON :

  1. On crée une variable M_CPU qui contient toutes les valeurs de la colonne CPU% de l’onglet CPU_ALL du fichier NMON.
  2. On crée une variable M_Heure qui contient toutes les dates de l’onglet CPU_ALL.
  3. On rajoute l’onglet « Mesure » qui contient les valeurs suivantes (On a dans cet exemple effectué 2 mesures sur un batch de facturation) :


Batch
Output
Unité O
Début
Durée
Fin
Pourcentage CPU
Consommation CPU
Facturation
179
Lignes facture
28/11/2014 13:15:52
43,157
28-11/2014 13:16:35
123
14734,41379
Facturation
179
Lignes facture
28/11/2014 13:28:52
62,79
28-11/2014 13:29:55
117
14014,41379

Le pourcentage d’occupation CPU est calculé par la formule matricielle :

={SOMME(M_CPU*SI(M_Heure>=[Début];1;0)*SI(M_Heure<=[Fin];1;0))}

La mesure unitaire de l’occupation CPU pour le traitement d’une ligne de facture est finalement fournie par la formule :

=[Pourcentage CPU]*10*Nombre_CPU/[Output]


On obtient 82 millisecondes de traitement pour une ligne de facture dans la première mesure, et 78 dans la seconde.