Pidstat

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Monitoring système (par processus)
Commande pidstat
Paquet Sysstat (mêmes sources que sar/Mpstat)
Voir aussi Top, Iotop — vues instantanées équivalentes

pidstat fait partie de la suite Sysstat (comme sar et Mpstat) et permet de suivre dans le temps la consommation de ressources d'un ou plusieurs processus précis, identifiés par leur PID — là où Mpstat regarde les CPU globalement et Top/Iotop donnent une vue instantanée rafraîchie, pidstat produit un historique horodaté exploitable en continu (utile pour un rapport d'incident ou un diagnostic différé).

Syntaxe générale

pidstat [options] -p PID intervalle [count]
  • PID : identifiant du processus à surveiller (obtenu par exemple avec pgrep ou ps)
  • intervalle : durée en secondes entre deux mesures
  • count : nombre de mesures à afficher (illimité si omis, jusqu'à interruption)

CPU par processus

Sans option, pidstat affiche l'usage CPU du processus (identique au comportement par défaut de sar, mais restreint au PID ciblé) :

pidstat -p PID 2

Ici, une mesure toutes les 2 secondes, sans limite de count — colonnes %usr, %system, %CPU et le cœur (CPU) sur lequel le processus tourne.

Mémoire et pagination (-r)

L'option -r bascule sur les statistiques mémoire du processus : taille virtuelle (VSZ), résidente (RSS), et surtout l'activité de pagination — les colonnes minflt/s et majflt/s (page faults mineurs et majeurs par seconde). Un taux élevé de majflt/s indique que le processus va chercher des pages sur disque plutôt qu'en RAM, signe de pression mémoire :

pidstat -r -p PID intervalle [count]

Exemple concret : surveiller la pagination du processus sshd sur 1 heure (300 secondes × 12 échantillons), typiquement pour vérifier qu'une session SSH ne subit pas de swap :

SSHD_PID=$(pgrep -o sshd)
pidstat -r -p "$SSHD_PID" 300 12

I/O disque par processus (-d)

L'option -d affiche les débits de lecture/écriture disque du processus (kB_rd/s, kB_wr/s) ainsi que l'I/O en attente (kB_ccwr/s, écriture annulée par le cache). Pratique pour isoler quel processus génère la charge disque observée globalement par iostat ou Iotop :

pidstat -d -p PID intervalle

Threads du processus (-t)

L'option -t détaille les statistiques par thread (TID) au lieu de les agréger au niveau du processus (PID) — utile pour repérer un thread précis qui consomme anormalement dans un processus multi-threadé. Elle se combine avec les autres options, par exemple mémoire + threads :

pidstat -r -t -p 2842 2

Cette commande affiche, toutes les 2 secondes, l'activité mémoire et de pagination détaillée par thread du processus 2842.

Combiner les options

Les options -r, -d, -t et -u (CPU explicite) peuvent se cumuler dans un même appel pour obtenir une vue complète d'un processus en une seule commande, plutôt que de lancer plusieurs pidstat en parallèle :

pidstat -u -r -d -p PID 5

Voir aussi

  • Sysstat — le paquet qui fournit pidstat, sar et Mpstat
  • Mpstat — statistiques CPU par cœur, vue globale plutôt que par processus
  • Top — vue interactive instantanée, tous processus
  • Iotop — équivalent temps réel pour l'I/O disque