Vmstat

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Surveillance mémoire, CPU et I/O
Commande vmstat
Contexte Linux générique (paquet procps) — pas d'installation nécessaire
Voir aussi Sar (historisation), Mémoire (diagnostic mémoire)

vmstat (Virtual Memory Statistics) affiche un instantané ou une série d'échantillons de l'activité mémoire, CPU et disque. Contrairement à Sar, il ne s'appuie sur aucune historisation cron : il lit directement les compteurs du noyau au moment de l'exécution.

Usage de base

Sans argument, vmstat affiche une seule ligne de moyennes depuis le dernier boot. Avec un intervalle et un nombre de répétitions, il échantillonne en continu :

vmstat            # une ligne, moyennes depuis le boot
vmstat 1 10       # un échantillon par seconde, 10 fois
vmstat 1 10 -t    # idem, avec horodatage sur chaque ligne
vmstat -w 1 10    # colonnes alignées en largeur fixe (plus lisible, pas de troncature)
vmstat -S m       # tailles mémoire affichées en Mo (K/k/M/m selon l'unité voulue)

Colonnes de sortie

Sortie type de vmstat 1 :

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
  • r : nombre de processus en attente de CPU (runnable) — s'il dépasse durablement le nombre de cœurs, la machine est CPU-bound.
  • b : nombre de processus bloqués en attente d'I/O (uninterruptible sleep).
  • swpd : mémoire swap utilisée.
  • free : mémoire physique libre (non réutilisée par le cache).
  • buff : mémoire utilisée pour les buffers bruts (métadonnées de blocs).
  • cache : mémoire utilisée par le cache de pages (fichiers), récupérable par le noyau si besoin.
  • si / so : quantité swappée-in / swappée-out par seconde — tout ce qui n'est pas nul signale une pression mémoire réelle.
  • bi / bo : blocs reçus (lus) / envoyés (écrits) depuis/vers un périphérique bloc, par seconde.
  • in : nombre d'interruptions par seconde.
  • cs : nombre de changements de contexte par seconde.
  • us : pourcentage CPU en espace utilisateur.
  • sy : pourcentage CPU en espace noyau (system).
  • id : pourcentage CPU idle.
  • wa : pourcentage CPU en attente d'I/O (wait) — élevé et durable, c'est un goulot d'étranglement disque, pas CPU.
  • st (si présent) : pourcentage volé par l'hyperviseur (steal time), pertinent en VM.

Mémoire détaillée

vmstat -s    # compteurs cumulés depuis le boot, un par ligne (événements mémoire, pages, swap, IO)
vmstat -a    # bascule l'affichage vers active/inactive au lieu de buff/cache
vmstat -m    # mémoire allouée par le slab allocator (cache d'objets noyau)

Disques

vmstat -d          # statistiques par disque (lectures/écritures, secteurs, temps)
vmstat -p sdb1     # statistiques détaillées pour une partition donnée

Autres compteurs

vmstat -f    # nombre de fork() effectués depuis le dernier boot

Voir aussi

  • Sar — historisation périodique des mêmes métriques via cron, utile pour comparer dans le temps
  • Mémoire — diagnostic mémoire plus large (free, /proc/meminfo)