Stat et stic sont sur un bateau

Publié le 31 août 2007 par Peck
Cet article est maintenant sur http://linux-attitude.fr/post/Stat-et-stic-sont-sur-un-bateau

Niveau :
Résumé : vmstat ; iostat ; pmstat ; ifstat ; dstat

Vous voulez connaître l'état de votre machine, les performances et les consommations de resources. Il existe un grand nombre d'outils à votre disposition :

Vmstat (virtual memory)

Affiche les statistiques d'utilisation de la ram, du swap, des entrées/sorties, du scheduler et du processeur.

# affichage en continu toutes les 2s
$ vmstat 2

swpd : memoire passée dans la swap
free : mémoire disponible
buff : mémoire utilisée dans des buffers
cache : mémoire utilisée dans des caches
-> si problème augmenter la ram ou à défaut la swap

si : quantité de swap lue
so : quantité de swap écrite
-> si problème augmenter la ram

bi : nombre de blocs lus sur le disque
bo : nombre de blocs écrits sur le disque
-> si problème optimiser le processus qui utilise le disque

in : nombre d'interruption matérielles et logicielles
-> si problème, matériel chargé ou abimé
cs : nombre de changement de contexte (de processus)
-> si problème, trop de processus, augmenter le nombre de cpu ;-)

us : proportion du temps processeur utilisée en userland
-> si problème, code à optimiser (probablement normal)
sy : proportion du temps processeur utilisée dans le noyau
id : proportion du temps processeur inutilisé
wa : proportion du temps processeur perdu en attente d'i/o
-> si problème, attention réseau ou disque


Vmstat dispose aussi de nombreuses autres options pour qu'il se comporte comme les commandes qui suivent. Le man vous donnera plus de détails.


Iostat (entrées sorties)

Du paquet sysstat, il affiche des statistiques d'entrées sortie sur le disque, c'est à dire le nombre de blocs écrits et lus :
$ iostat 2

Pour une version détaillée par partition :
$ iostat -p ALL 2


Mpstat

Du même paquet que précédemment, il affiche des statistiques liées au processeur.

$ mpstat 2

Les valeurs sont découpées en
%user : utilisation par les processus normaux
%nice : utilisation par les processus nicés
%sys : utilisation par le noyau
%iowait : blocage par le matériel
%irq : utilisation par une interruption matérielle (timer, disque ...)
%soft : utilisation par une interruption logicielle (appel système, exception ...)
%steal : processeur non disponible car utilisé dans une autre machine virtuelle (nouveauté)
%idle : processeur non utilisé
intr/s : nombre d'interruptions par seconde


Ifstat

Du paquet éponyme, il fournit les statistiques sur les utilisation du réseau, les données sont simplement des débits entrants et sortans en kilooctets (kiO) par seconde
$ ifstat -taT 2

Ifstat permet aussi d'obtenir des statistiques autrement que par lecture de /proc. La méthode la plus intéressante et le polling snmp
$ ifstat -p "snmp:public@machine.toto.fr" 2


Dstat

Du paquet du même nom, dstat est une commande qui tente de regrouper un peu tous les précédents. Petite touche sympa, il supporte la couleur. Par défaut, il affiche ce qu'affiche vmstat.
$ dstat

Dstat ajoute le supprt de la charge (-l) ainsi que des informations sur le réseau (--tcp --udp --unix --raw) et sur le système (--lock --ipc). Ainsi que le fonctionnement par plugin. pour afficher la liste des plugins supportés et donc des onformations associées :
$ dstat -M list
# puis les utiliser
$ dstat -M cpu,dbus
Attention tout de même, dstat ne détecte pas proprement les disques, ce qui fait que si vous avez de noms de périphériques inhabituels comme ccsa, hdb ou autre, il se peut qu'il ne sioent pas pris en compte (quel dommage ...)