Identification des ressources limitant les performances

Le meilleur outil permettant d'avoir un aperçu global de l'utilisation des ressources lors de l'exécution d'une charge de travail multiutilisateur est la commande vmstat.

La commande vmstat signale l'activité de l'unité centrale et des E-S du disque, ainsi que les données d'utilisation de la mémoire. L'instanciation suivante de la commande vmstat génère, toutes les 5 secondes, un rapport récapitulatif sur une ligne de l'activité système :
# vmstat 5

Dans l'exemple ci-dessus, étant donné qu'aucun nombre n'est spécifié après l'intervalle, le rapport continue jusqu'à ce que vous annuliez la commande.

Le rapport vmstat suivant a été créé sur un système exécutant AIXwindows et plusieurs applications synthétiques (certains intervalles de faible activité ont été supprimés à des fins d'exemple) :
kthr     memory             page              faults        cpu
----- ----------- ------------------------ ------------ -----------
 r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa
 0  0  8793    81   0   0   0   1    7   0 125   42  30  1  2 95  2
 0  0  8793    80   0   0   0   0    0   0 155  113  79 14  8 78  0
 0  0  8793    57   0   3   0   0    0   0 178   28  69  1 12 81  6
 0  0  9192    66   0   0  16  81  167   0 151   32  34  1  6 77 16
 0  0  9193    65   0   0   0   0    0   0 117   29  26  1  3 96  0
 0  0  9193    65   0   0   0   0    0   0 120   30  31  1  3 95  0
 0  0  9693    69   0   0  53 100  216   0 168   27  57  1  4 63 33
 0  0  9693    69   0   0   0   0    0   0 134   96  60 12  4 84  0
 0  0 10193    57   0   0   0   0    0   0 124   29  32  1  3 94  2
 0  0 11194    64   0   0  38 201 1080   0 168   29  57  2  8 62 29
 0  0 11194    63   0   0   0   0    0   0 141  111  65 12  7 81  0
 0  0  5480   755   3   1   0   0    0   0 154  107  71 13  8 78  2
 0  0  5467  5747   0   3   0   0    0   0 167   39  68  1 16 79  5
 0  1  4797  5821   0  21   0   0    0   0 191  192 125 20  5 42 33
 0  1  3778  6119   0  24   0   0    0   0 188  170  98  5  8 41 46
 0  0  3751  6139   0   0   0   0    0   0 145   24  54  1 10 89  0

Dans cette évaluation initiale, prêtez une attention particulière aux colonnes pi et po de lapageet les quatre colonnes de lacpucatégorie.

Les entrées pi et po représentent respectivement les entrées et sorties de page de l'espace de pagination. Si vous observez des instances d'E-S d'espace de pagination, la charge de travail peut approcher ou dépasser les limites de mémoire du système.

Si la somme des pourcentages d'utilisation de l'unité centrale de l'utilisateur et du système, us et sy est supérieure à 90 % dans un intervalle donné de 5 secondes, la charge de travail approche les limites d'UC du système pendant cet intervalle.

Si le pourcentage d'attente d'E-S, wa, est proche de zéro et que les valeurs pi et po sont égales à zéro, le système passe du temps à attendre des entrées-sorties de fichier non chevauchées et une partie de la charge de travail est limitée en E-S.

Si la commande vmstat indique un temps d'attente d'E-S important, utilisez la commande iostat pour collecter des informations plus détaillées.

L'instanciation suivante de la commande iostat génère des rapports récapitulatifs sur l'activité d'E-S et l'utilisation de l'unité centrale toutes les 5 secondes, et comme nous spécifions un nombre de 3 après l'intervalle, la génération de rapports s'arrêtera après le troisième rapport :
# iostat 5 3

Le rapport iostat suivant a été créé sur un système exécutant la même charge de travail que celle de l'exemple vmstat ci-dessus, mais à un autre moment. Le premier rapport représente l'activité cumulée depuis le démarrage précédent, tandis que les rapports suivants représentent l'activité au cours de l'intervalle de 5 secondes précédent :

tty:      tin         tout   avg-cpu:  % user    % sys     % idle    %iowait
          0.0          4.3               0.2      0.6       98.8       0.4

Disks:        % tm_act     Kbps      tps    Kb_read   Kb_wrtn
hdisk0           0.0       0.2       0.0       7993      4408
hdisk1           0.0       0.0       0.0       2179      1692
hdisk2           0.4       1.5       0.3      67548     59151
cd0              0.0       0.0       0.0          0         0

tty:      tin         tout   avg-cpu:  % user    % sys     % idle    %iowait
          0.0         30.3               8.8      7.2       83.9       0.2

Disks:        % tm_act     Kbps      tps    Kb_read   Kb_wrtn
hdisk0           0.2       0.8       0.2          4         0
hdisk1           0.0       0.0       0.0          0         0
hdisk2           0.0       0.0       0.0          0         0
cd0              0.0       0.0       0.0          0         0

tty:      tin         tout   avg-cpu:  % user    % sys     % idle    %iowait
          0.0          8.4               0.2      5.8        0.0      93.8

Disks:        % tm_act     Kbps      tps    Kb_read   Kb_wrtn
hdisk0           0.0       0.0       0.0          0         0
hdisk1           0.0       0.0       0.0          0         0
hdisk2          98.4     575.6      61.9        396      2488
cd0              0.0       0.0       0.0          0         0

Le premier rapport montre que les E-S de ce système sont déséquilibrées. La plupart des entrées-sorties (86.9 pour cent des kilooctets lus et 90.7 pour cent des kilooctets écrits) vont àhdisk2, qui contient à la fois le système d'exploitation et l'espace de pagination. Les statistiques cumulées de l'utilisation de l'unité centrale depuis le démarrage n'a généralement aucune signification, à moins que vous n'utilisiez le système de façon constante, 24 heures sur 24.

Le second rapport affiche une petite quantité d'activité de disque à partir dehdisk0, qui contient un système de fichiers distinct pour l'utilisateur principal du système. L'activité de l'unité centrale provient de deux programmes d'application et de la commande iostat elle-même.

Dans le troisième rapport, vous pouvez voir que nous avons créé artificiellement une condition de quasi-défaillance en exécutant un programme qui alloue et stocke une grande quantité de mémoire, soit environ 26 Mo dans l'exemple ci-dessus. Dans l'exemple ci-dessus également,hdisk2est actif 98.4 % du temps, ce qui entraîne une attente d'E-S de 93.8 %.