next up previous contents Next: Environnement des processus. Up: Processus et variables d'environnement. Previous: Nice et renice: programmer   Table des matières  


10.8 Consommation mémoire et CPU: top.

La commande top classe tous les processus par leur consommation de la CPU et de la mémoire. Elle affiche le ``top 20'' sous forme d'une table. Lancez top chaque fois que vous voulez voir le (ou les) processus qui monopolise(nt) votre machine. La commande top -q -d 2 est utile [NdT: la version top utilisée par le traducteur sur Gentoo-Linux n'admet pas l'option -q pour programmer la commande top elle-même afin de lui conférer une haute priorité.] Ceci permet le rafraîchissement de l'affichage à l'écran sans décalage (important). top -n l -b > top.txt affiche tous les processus et top -n 1 -b -p <PID> affiche de l'information à propos d'un processus en désignant ce dernier par son PID.

topprésente des réponses interactives très utiles lorsque certaines touches sont pressées:

f
affiche une liste des champs que vous pouvez modifier interactivement. Par défaut, les seuls champs montrés sont USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND, ce qui constitue l'essentiel (la signification des champs est donnée ci-après),

r
redéfinit la priorité (renice) d'un processus,

k
tue un processus.
La page de man de top décrit la signification des champs. Certains de ceux-ci sont un peu déroutant et supposent une connaissance des programmes en C qui les constitutent. La principale question qui intéresse un utilisateur se résume souvent ainsi: combien de mémoire un processus utilise-t-il? La réponse est donnée par la champ RSS, qui signifie Resident Set Size. RSS désigne la quantité de RAM qu'un processus consomme à lui seul. Les exemples suivants montrent les totaux pour tous les processus en cours sur le système (qui possède 65536 kilo-octets de RAM, en l'occurrence). Ils représentent le total des champs SIZE, RSS et SHARE, respectivement.

echo `echo '0'; top -q -n 1 -b | sed -e '1,/PID *USER *PRI/D' | \

   awk '{print "+" $5}' | sed -e 's/M/\\*1024/' ` | bc

68016 

echo `echo '0'; top -q -n 1 -b | sed -e '1,/PID *USER *PRI/D' | \

   awk '{print "+" $6}' | sed -e 's/M/\\*1024/' ` | bc

58098 

echo `echo '0'; top -q -n 1 -b | sed -e '1,/PID *USER *PRI/D' | \

   awk '{print "+" $7}' | sed -e 's/M/\\*1024/' ` | bc

30184 



Le champ SIZE représente l'usage de la mémoire que fait un processus, au total. RSS fait la même chose, mais ne tient pas compte de la mémoire échangée sur la partition d'échange ``swap''. SHARE est la quantité de mémoire partagée entre les processus.

Les autres champs sont décrits dans la page de man comme suit:

uptime (ou top)
Cette première ligne affiche l'heure, la durée depuis laquelle le système fonctionne, le nombre d'utilisateurs connectés, et les trois charges moyennes du système. Ces trois moyennes indiquent le nombre moyen de processus ayant fonctionné durant les 1, 5 et 15 dernières minutes. Cette ligne est exactement celle de la sortie de w(1) ou uptime(1). La ligne d'uptime peut être mise à jour par la commande 1 dans top;

processes (ou tasks)
La ligne 2 représente le nombre de processus en cours depuis le dernier rafraîchissement. Elle est constituée de plusieurs champs: nombre de tâches en cours, en suspens, arrêtées ou zombies (ce dernier terme désigne un processus qui a été tué mais qui n'a pas abandonné la table des processus parce que le processus-parent n'a pas encore exécuté un wait(2); les processus zombies sont parfois affichés par la commande ps(1)). Les processus et les états montrés peuvent être rafraîchis par la commande interactive t;

CPU states
indique, en pourcentage, le temps CPU utilisé en mode utilisateur (user), mode système (system), redéfinition des priorités (nice) et, arrêts (idle). Les processus dont le degré de douceur a été redéfini sont les seuls à avoir des valeurs négatives;

Mem
donne les statistiques sur l'utilisation de la mémoire: la mémoire totale disponible, la mémoire libre, la mémoire utilisée, la mémoire partagée et la mémoire utilisée par les tampons. L'affichage de ces informations peut être rafraîchi par la commande intéractive m;

Swap
donne les statistiques sur l'espace de swap: l'espace total, celui disponible et celui utilisé. Swap et Mem constituent le résultat de la commande free(1);

PID
désigne l'IDentificateur du processus associé à chaque tâche;

PPID
est l'IDentificateur du processus-parent de chaque tâche;

UID
est l'ID d'utilisateur (le propriétaire de la tâche);

USER
désigne le nom d'utilisateur du propriétaire de la tâche;

PRI
définit la priorité de la tâche;

NI
représente la valeur de la douceur d'une tâche;

SIZE
est la taille du code d'une tâche, ajoutée à l'espace de pile, (unités: kilo-octet);

TSIZE
représente la taille du code d'une tâche. Ceci donne des valeurs spéciales pour les processus du noyau; non-fonctionnel pour les processus ELF; Format de binaires sous SVr4 (System V, version 4).

DSIZE
est la taille des données et de la pile. Ne fonctionne pas pour les processus ELF;

TRS
indique la taille de texte restant;

SWAP
représente la taille de la partie (d'une tâche) déplacée sur l'espace de swap;

D
indique la taille de pages marquées ``dirty'';

LIB
est la taille de l'ensemble des pages de bibliothèques utilisées. Ne fonctionne pas pour les processus ELF;

RSS
désigne la quantité totale de mémoire physique utilisée par une tâche (exprimée en kilo-octets). Dans le cas des processus ELF, les pages de bibliothèques utilisées sont prises en compte ici (ce n'est pas le cas pour les processus a.out);

SHARE
représente la quantité de mémoire utilisée par une tâche;

STAT
:l'état d'une tâche est y représentée. L'état est soit S pour sleeping, D pour uninterruptible sleep, R pour running, Z pour zombie, ou T pour stopped (encore appelé traced). Ces états sont modifiés par un traceur< pour les processus avec une valeur de priorité négative, N pour les processus avec des valeurs de priorités positives et W pour un processus dégagé vers l'espace de swap (ceci ne fonctionne correctement que pour les processus du noyau);

WCHAN
: en fonction de la disponibilité de /boot/psdatabase ou de la table de liens du noyau (/boot/System.map), ceci montre les adresses ou le nom de la fonction du noyau pour lequel la tâche est suspendue;

TIME
définit la durée totale de CPU qu'une tâche a utilisé depuis son lancement. Si le mode cumulatif est activé, ceci inclut aussi la durée de CPU utilisée par les processus-fils qui ont été tués. Le mode cumultif peut être activé à l'aide de l'option S en ligne de commande. Vous pouvez opérer un rafraîchissement de la valeur avec la commande interactive S. La ligne d'en-tête sera modifiée de manière à utiliser le CTIME.

%CPU
représente le partage (en fonction des tâches) de la durée d'utilisation de la CPU depuis la dernière mise-à-jour à l'écran. Cette valeur est exprimée en pourcentage de la durée d'utilisation de CPU par processeur.

%MEM
représente le partage (en fonction des tâches) de la mémoire physique.

COMMAND
désigne le nom (la commande) d'une tâche. Celui-ci sera tronqué s'il est trop long pour être affiché sur une seule ligne. Les tâches en mémoire ont une ligne de commande, mais les tâches dégagés sur l'espace de swap ont seulement le nom du programme entre parenthèses (par exemple: ``(getty)'').


next up previous contents Next: Environnement des processus. Up: Processus et variables d'environnement. Previous: Nice et renice: programmer   Table des matières  
1-01-2006