Analyse des performances de la mémoire avec la commande vmstat

Introduction

La commande vmstat permet d'obtenir sur les systèmes Unix les statistiques sur la mémoire virtuelle (Virtual Memory). Dans cette documentation, la commande vmstat est étudiée sous 3 OS :

  • Sun Solaris
  • IBM AIX
  • HP-UX

Les rapports générés par la commande vmstat varient très fortement selon l'OS et quelques exemples accompagnés d'une description sont donnés dans ce document.

Dans cette documentation, il est question de pages et il est important de savoir dès à présent qu'une page correspond à 4096 bytes.

L'objectif de cette documentation ne consiste pas à traduire les man de la commande vmstat sous les OS Solaris, IBM AIX, et HP-UX mais plutôt à travers des exemples concrets d'être capable de déchiffrer les résultats renvoyés par la commande vmstat.

Généralités sur la commande vmstat

Syntaxe

La syntaxe de la commande vmstat varie fortement en fonction de l'OS (Solaris, AIX ou HP-UX).

Syntaxe Solaris:

vmstat [ -cipsS ] [ PhysicalVolume ] [ Interval [ Count ] ]

Syntaxe IBM AIX

vmstat [ -f ] [ -i ] [ -s ] [ PhysicalVolume ... ] [ Interval [ Count ] ]

Syntaxe HP-UX

vmstat [ -dnS ] [ Interval [ Count ] ]
vmstat -f | -s | -z

Description

La commande vmstat génère des rapports sur les process et la mémoire virtuelle, additionnellement elle peut fournir des informations concernant les disques (spécificité Solaris et IBM AIX) mais la commande iostat est plus pertinente pour l'activité sur les disques. La commande vmstat est très utile pour traquer des problèmes de mémoire sur un système UNIX.

Le paramètre Interval permet de spécifier le temps en secondes entre chaque rapport. Le paramètre Count peut être combiné avec le paramètre Interval, ce dernier paramètre permet de spécifier le nombre de rapports à générer. Si le paramètre Interval est spécifié sans le paramètre Count, la commande vmstat génère des rapports de façon continue.

Exemples de rapports vmstat et interprétations

Exemple Solaris

L'exemple ci-dessous a été obtenu avec la commande : vmstat 5

vmstat 5
procs     memory            page            disk          faults      cpu
r b w   swap  free  re  mf pi po fr de sr f0 s3 s6 --   in   sy   cs us sy id
0 0 0   2444  2040   0  26  1  4  4  0  0  0  3  0  0   31   91   41  1  4 95
0 0 0 135588  2232   0  14  0  0  0  0  0  0  0  0  0   64   27   38  0  0 100
0 0 0 135588  2232   0   0  0  0  0  0  0  0  0  0  0   70   33   43  0  2 98
0 0 0 135588  2232   0   0  0  0  0  0  0  0  0  0  0   85  101   68  2  0 98
0 0 0 135588  2232   0   0  0  0  0  0  0  0  0  0  0   69   33   37  0  6 94
0 0 0 135588  2232   0   0  0  0  0  0  0  0  0  0  0   68   36   40  0  0 100
0 0 0 135588  2232   0   0  0  0  0  0  0  0  0  0  0   67   31   36  0  0 100
0 0 0 135588  2232   0   0  0  0  0  0  0  0  0  0  0   65   43   35  1  1 98
0 0 0 135588  2232   0 102  0  0  0  0  0  0  0  0  0   82  179   65  2  5 93
0 0 0 135588  2232   0   0  0  0  0  0  0  0  0  0  0   76   52   42  0  8 92
0 0 0 135588  2232   0   0  0  0  0  0  0  0  0  0  0  107  109   68  1  1 98
0 0 0 135588  2232   0   0  0  0  0  0  0  0  0  0  0  109  110   81  1  2 97
0 0 0 135588  2232   0 232  0  0  0  0  0  0  0  0  0   78  340   61  6 10 84
0 0 0 134028  1584   0 524  0  0  0  0  0  0  0  0  0  200  540  164 38 31 31
0 0 0 133884  1356   0  66  0  0  0  0  0  0  1  0  0  201  323  167 15 12 73
0 0 0 133768  1200   0  34  0  0  0  0  0  0  0  0  0  106  179   90 15 18 67


Procs Les trois colonnes en dessous de l'entête procs montrent le nombre de process dans la "run queue" (r), le nombre de process bloqués (b), et le nombre de process courts ou exécutables dans la zone d'échange (swap) (w).
Memory Les deux colonnes sous l'entête memory indiquent la quantité en bytes de swap ou pages virtuelles accédées (swap), et la quantité de mémoire occupée par des pages libres ou inaccédées en Kb (free). Dans cet exemple, il y a environ 128K de swap, et environ 2200 Kb de mémoire libre.
Pages Les sept colonnes en dessous de l'entête Page donnent des informations concernant les pages et le comportement au ni