Une administration système efficace nécessite de surveiller de près l'utilisation des ressources, et la surveillance de la mémoire est un élément essentiel de ce processus. Lorsqu'un système manque de mémoire, ses performances peuvent se dégrader considérablement. Linux fournit plusieurs outils pour vous aider à suivre la consommation de mémoire, et l'un des plus polyvalents est vmstat.
Introduction à vmstat
La commande vmstat (statistiques de mémoire virtuelle) est un moniteur d'utilisation de la mémoire puissant qui signale des informations sur les processus, la mémoire, la pagination, les E/S de bloc, les interruptions et l'activité du CPU. L'exécuter sans arguments fournit un instantané de l'état actuel du système depuis le dernier démarrage.
pete@icebox:~$ 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 0 396528 38816 384036 0 0 4 2 38 79 0 0 99 0 0
Le résultat est organisé en plusieurs colonnes. Décomposons la signification de chaque champ.
Procs
r: Le nombre de processus exécutables attendant du temps d'exécution.b: Le nombre de processus en sommeil non interrompable, attendant généralement des E/S.
Memory
swpd: La quantité de mémoire virtuelle utilisée (en kilooctets).free: La quantité de mémoire inactive (en kilooctets).buff: La quantité de mémoire utilisée comme tampons (buffers).cache: La quantité de mémoire utilisée comme cache de pages.
Swap
si: La quantité de mémoire échangée depuis le disque par seconde (en kilooctets). Des valeurs élevées indiquent que le système manque de mémoire physique.so: La quantité de mémoire échangée vers le disque par seconde (en kilooctets). Idéalement, cette valeur devrait être nulle.
IO
bi: Blocs reçus d'un périphérique de bloc (blocs/s).bo: Blocs envoyés à un périphérique de bloc (blocs/s).
System
in: Le nombre d'interruptions par seconde, y compris l'horloge.cs: Le nombre de changements de contexte par seconde.
CPU
Ce sont des pourcentages du temps total du CPU.
us: Temps passé à exécuter du code non noyau (temps utilisateur).sy: Temps passé à exécuter du code noyau (temps système).id: Temps passé au repos (inactif).wa: Temps passé à attendre des E/S.st: Temps volé à une machine virtuelle (pour les environnements virtualisés).