La commande ps permet de voir les processus présents sur le serveur et quel est leur état d’exécution mais cet affichage reste cependant figé. Les commandes top et htop permettent quand à elles de manipuler les processus et de les visualiser en temps réel.
Commande ps
La commande ps (Processus Snapshot) permet de voir plusieurs informations sur les processus dont notamment l’utilisateur (USER), l’identifiant du processus (PID) et le statut (STAT).
PID (Process IDentifiant) : l’identifiant unique de processus définit par le système
%CPU : le pourcentage d’utilisation du processeur
%MEM : le pourcentage de mémoire physique (RAM) utilisée
VSZ (Virtual memory SiZe) : la quantité de mémoire virtuelle (swap) utilisée en Kio
RSS (Resident Set Size) : la quantité de mémoire physique (RAM) occupée par le processus en Kio
TTY (Text TeletYpe) : le terminal qui a lancé le processus. Le “?” indique que la commande n’est pas associée à un terminal
STAT : le statut du processus
START : l’heure ou la date à laquelle le processus à été lancé
TIME : le temps total que le cpu a passé sur ce processus et ces enfants
COMMAND : la commande qui a été exécutée pour lancer le processus
Il est aussi possible de voir le PPID avec ps -alex par exemple.
PPID : Numéro du processus parent (Parent Process Id entification).
Le statut STAT indique l’état dans lequel un processus se trouve. Parmi les plus courants nous avons l’état :
R (En cours d’exécution)
S (En sommeil interruptible)
D (En sommeil ininterruptible, généralement par des I/O)
T (Stoppé)
W (Pagination, obsolète depuis la version 2.6 du noyau)
X (Mort, ne devrait jamais arriver)
Z (Zombie) - Processus terminé mais pas encore pris en compte par son père
Des caractères additionnels apportent plus de précisions sur le statut des processus :
< : priorité haute
N : priorité basse
L : verrouillé en mémoire
s : en chef de file
l : en multi-thread
+ : processus d’avant plan
La commande man ps donne plus d’informations sur les champs et option ci-dessus. Note : La commande ps donne l’état des processus à un instant t, pour visualiser les processus en temps réel on peut utiliser la commande top.
Commande top
La commande top permet d’avoir des informations sur les processus en temps réel et de pouvoir les manipuler. L’avantage de top est de pouvoir paramétrer l’affichage des processus de façon très précise et de pouvoir enregistrer cette configuration pour une utilisation ultérieure. Par défaut la commande top affiche les processus qui occupent le plus de mémoire (colonne%CPU) et les renseignements suivant :
(Ligne 1) Nom de la commande, heure du serveur, uptime, nombre d’utilisateur connecté, charge moyenne (depuis 1min, 5min, 15 min). Il est à noté que ces résultats sont équivalemment à la commande uptime.
(Ligne 2) Nombre de processus total et leur statut (running, sleeping, stopped, zombie)
(Ligne 3) Le pourcentage de temps Cpu utilisé par :
us (user) : processus utilisateurs
sy (systeme) : processus système (kernel threads)
ni (niced) : processus à qui on a changé la priorité
id (iddle) : non sollicité
wa (wait) : l’attente pour les entrées/sorties
hi (hardware interruption) : les interruptions matérielles (irq)
si (software interruption) : les interruptions logicielles (isq)
st (steal time) : l’hyperviseur
(Ligne 4) Mémoire physique (totale, utilisée, libre, tampons). L’unité en Kio peut être changé avec la touche e
(Ligne 5) Mémoire virtuelle (totale, utilisée, libre, en cache). L’unité en Kio peut être changé avec la touche e
Espace vide
L’espace vide entre la partie 1 et 3 permet de dialoguer avec la commande top, certaines options demanderont de préciser des valeurs.
Affichage des sprocessus
La 3ème partie affiche les processus avec plusieurs champs : PID, USER, PR (priorité), NI (nice), etc., il est possible avec la touche f d’en ajouter d’autre (ou d’en enlever). L’option f permet également de voir à quoi correspond chaque champs.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1934 aline 20 0 862880 11856 5408 S 2,0 0,3 1:11.12 synergyc 1721 aline 20 0 923608 47288 38832 S 1,3 1,2 6:28.24 synergy 8587 aline 20 0 30448 3984 2956 S 1,3 0,1 0:09.92 htop 4233 aline 20 0 29204 2976 2408 S 0,7 0,1 0:57.41 top 8619 root 20 0 0 0 0 S 0,7 0,0 0:00.56 kworker/1:2 7 root 20 0 0 0 0 S 0,3 0,0 0:22.12 rcu_sched 8318 root 20 0 0 0 0 S 0,3 0,0 0:04.67 kworker/0:0 1 root 20 0 37348 7760 2632 S 0,0 0,2 0:01.53 init
Le manuel de top est très complet, en voici quelques extraits. Pour plus de précision vous pouvez afficher l’aide avec -h ou consulter le manuel man top. Note : La commande top différencie les touches minuscules et majuscules.
Commande générales :
q : ferme top h, ? : affiche l'aide d, s : modifie le temps de rafraîchissement (3s par défaut). Possibilité d'utiliser les millisec : 0,25. (la touche espace permet de rafraîchir à tout moment l'affichage) n, # : nombre maximum de processus à afficher W : enregistre les modifications effectuées dans top (couleur, colonne, ...)
Manipulation de la partie haute de top (Summary display)
l : affiche/enlève les informations serveur et la charge moyenne t : affiche/enlève les informations cpu m : affiche/enlève les informations mémoire E : change l'unité d'affichage pour la mémoire physique et virtuelle, Kio, Mio, Gio, Tio, Pio, Eio 0 : n'affiche pas les valeurs valant zéro (time, %CPU, ...) 1 : affiche les autres cpu s'il existe. 2 : affiche les nœuds (node) 3 : affiche les threads
Affichage de l’information :
f, F : rajoute des champs. H : affiche les threads V : Affiche les processus sous forme d'arbre i : ignore les processus zombies et au repos. c : affiche le nom de la commande ou la ligne de commande C : permet de scroller haut/bas (utile pour voir tout les processus) et gauche/droite (pour voir tout les champs) n, # : nombre maximum de processus à afficher
Traitement des résultats
u, U : filtre en fonction d'un utilisateur L, & : recherche une chaîne de caractère ( & : recherche de nouveau cette chaîne) <,> Sélectionner la colonne qui permettra de trier les processus
Trier en fonction de M : utilisation mémoire N : le PID P : utilisation CPU T : temps CPU R : change l'ordre du tris S : cumule le temps des processus enfants avec le processus parents
Actions sur les processus k : fait appel à kill. Le prompt vous demandera le PID du processus et numéro de signal (par défaut 15) r : Change la priorité d'un processus
Effets visuels Z : permet de choisir les couleurs d'affichage. z : affiche ou enlève la couleur x : surligne la colonne avec laquelle l'affichage des processus est trié y : surligne les processus avec le statut R (running) B : Met en gras les caractères numériques de la zone de résumé (partie haute de top) ou en gras et blanc les éléments surlignés par x et y. b : Met en gras les éléments surlignés (uniquement si 'x' ou 'y' est appliqué)
Commande htop
L’utilisation de htop est un peu différence qu’avec top. La commande htop est cependant plus interactive et visuellement plus agréable.
Dans htop on distingue les options de la ligne de commande qui sont des options à spécifier avant de lancer htop des commandes interactives qui peuvent uniquement être lancées une fois que htop a démarré.
Les options de la ligne de commandes :
-d permet de spécifier la période de rafraîchissement (en seconde) :
htop -d 0,25 // toutes les 25 millisecondes
-C : Pour n’avoir qu’une seule couleur (blanc) :
htop -C
-h : Affiche l’aide des options pour la ligne de commande :
htop -h
-p : Affiche uniquement le PID choisi :
htop -p 4242
-s permet de trier en fonction d’une colonne :
htop -s PID
Pour avoir la liste des colonnes disponible :
htop --sort-key help PID Command STATE [...]
-u : Affiche uniquement les processus d’un utilisateur
htop -u aline
-v : Affiche la version :
htop -v
Les options interractives :
Une fois que le programme htop a été lancé vous voyez ceci :
Il est possible à tout moment utiliser les commandes suivantes :
Commande générales : F1, ?, h : Affiche l'aide F10, q : Quitte htop F2, S : Configuration Manipulation de la partie haute de htop (information générale) F2 : Menu Meters (certaines options proposent un menu contextuel en bas de l'écran) Affichage de l'information : Flèches ( ↑ ↓ ← → ) : permet de se déplacer haut/bas/droite/gauche dans la liste des processus. Espace : Permet de mette en surbrillance les processus sélectionnés U : Désélectionne tous les processus mis en surbrillance H : Affiche/Enlève les threads utilisateurs K : Affiche/Enlève les threads noyaux F5 : Affiche les processus sous forme d'arbre. +, - : Si F5 est activé, vous permettra de fermer/ouvrir une arborescence. F2 : Ajoute des colonnes, menu Columns (certaines options proposent un menu contextuel en bas de l'écran)
Traitement des résultats :
0 à 9 : Recherche incrémentale en fonction du PID F3, / : recherche par nom (F3 pour occurrence suivante) F4, \ : applique un filtre de recherche F6, > : Permet de sélectionner une colonne de tris u : Affiche les processus d'un utilisateur choisi P : Tris en fonction du %CPU utilisé M : Tris en fonction d %MEM utilisé T : Tris en fonction du temps passé paar le CPU sur le processus et ses enfants I : Inverse l'ordre du tris i : définis la priorité des entrées/sorties a : permet de choisir le CPU l : liste les fichiers ouvert avec la commande lsof s : liste les appels systèmes avec la commande strace L : liste les appels des librairies avec la commande ltrace F : Suit le processus sélectionné.
Actions sur les processus :
F7, ] : Augmente la priorité du processus sélectionné (que si la commande a été lancé en root) F8, [ : Baisse la priorité du processus sélectionné F9, + : fait appel à la commande kill et vous demandera de choisir le signal à envoyer. f - Effets visuels F2 – Menu Meters et Colors (certaines options proposent un menu contextuel en bas de l'écran)
Visualiser une arborescence
Avec pstree
La commande pstree permet de voir processus sous forme d’un arbre. Par défaut la racine de pstree commence avec init si rien n’est précisé. (Ne semble pas afficher les trhreads noyau).
Pour faciliter la lecture pstree fusionne visuellement les branches identiques en les plaçant entre crochets et les préfixant avec le nombre de répétitions.
La commande ps permet également d’afficher les processus sous forme d’un arbre. Contrairement à pstree les threads noyaux sont affichés. Les options sont axjf.