Performance et optimisation

vmstat : Surveillance système en temps réel

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières



Introduction



Cet article est un super récapitulatif des outils de performances et d'analyse, bien souvent livrés avec une distribution Linux.
Zoom sur ceux-ci et explications


Les outils



vmstat



La commande vmstat permet de générer des rapports sur les statistiques de mémoire virtuelle et sur les informations sur les événements système telles que la charge CPU, la pagination, le nombre de changements de contexte, les interruptions de périphérique et les appels système. La commande vmstat permet également d'afficher les statistiques sur la permutation, la purge du cache et les interruptions.

Elle s'utilise simplement :

Code BASH :
adrien@oxygen ~ $ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0 450860 148752  79152 881524    0    0     0     1    0    1  9  7 83  1  0


Il est possible de passer des nombres en paramètres, de telle façon que

Code BASH :
vmstat $INTERVAL $NOMBRE


Voici un exemple concret de relevés toutes les 2 secondes, 5 fois :

Code BASH :
adrien@oxygen ~ $ vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0 450860 148752  79152 881524    0    0     0     1    0    1  9  7 83  1  0
 0  0 450860 148744  79152 881528    0    0     0     8  974 1995 12  5 83  0  0
 0  0 450860 148712  79152 881528    0    0     0     0  947 1884  9  8 83  0  0
 0  0 450860 148712  79152 881528    0    0     0     6  961 1985  9  7 84  0  0
 0  0 450860 148712  79152 881528    0    0     0   316  938 1899 11  6 82  1  0


Apportons quelques explications sur les différentes parties :

<fieldset class="formatter-container formatter-fieldset" style=""><legend>procs</legend><div class="formatter-content">Rapports sur les éléments suivants :
  • r : La « runqueue » : file de thread prêt à être (ou déjà) en mode « run » - en attente de ressource cpu. Appelée aussi la charge système générale (load average)
  • b : La « waitqueue » (notée b pour block) : nombre de thread en attente de ressource autre que la cpu. Ex : disque, mémoire, réseau, etc.

</div></fieldset>

<fieldset class="formatter-container formatter-fieldset" style=""><legend>memory</legend><div class="formatter-content">Rapports sur l'utilisation de la mémoire :
  • swapd : Espace de swap utilisé
  • free : Mémoire disponible
  • buff : Mémoire utilisée en buffer
  • cache : Mémoire utilisée en cache

</div></fieldset>

<fieldset class="formatter-container formatter-fieldset" style=""><legend>swap</legend><div class="formatter-content">Rapports sur l'utilisation de la swap :
  • si : « Swap In » : Mémoire déchargée du SWAP vers la RAM par seconde
  • so : « Swap Out » : Mémoire déchargée de la RAM vers la SWAP par seconde

</div></fieldset>

<fieldset class="formatter-container formatter-fieldset" style=""><legend>io</legend><div class="formatter-content">Rapports sur l'utilisation du disque :
  • bi : « Block In » : Lecture sur les périphériques blocs (disques durs) en blocs/s
  • bo : « Block Out » : Écriture sur les périphériques blocs (disques durs) en blocs/s

</div></fieldset>

<fieldset class="formatter-container formatter-fieldset" style=""><legend>cpu</legend><div class="formatter-content">Rapports sur l'utilisation du processeur :
  • us : « Temps Utilisateur » : Opérations lancées en mode utilisateur : les programmes applicatifs, calcul, etc.
  • sy : « Temps Système » : Opérations lancées en mode kernel : création de socket, ouverture de fichier, etc.
  • id : « Idle » : Temps où le processeur ne fait rien
  • wa : « Wait» : En attente de ressource (disque, réseau...)

</div></fieldset>