Quand la per­for­mance décline ou même lorsque le système in­for­ma­tique se fige sou­dai­ne­ment, une question se pose ra­pi­de­ment : des pro­grammes sont-ils en cours d’exécution en arrière-plan, de manière im­per­cep­tible, et utilisent-ils inu­ti­le­ment des res­sources pro­vo­quant une surcharge de travail ? Le ges­tion­naire de tâches, connu aussi sous le nom de ges­tion­naire de processus peut répondre à cette question en re­cueil­lant des in­for­ma­tions dé­tail­lées sur tous les processus actifs du système et en pré­sen­tant des aperçus. En plus de cette fonction de sur­veil­lance, les ges­tion­naires de tâches ont également les fonctions né­ces­saires pour gérer et contrôler ces processus : ils peuvent ainsi détecter les pro­grammes et services qui saturent le fonc­tion­ne­ment de votre système et peuvent remédier à ce problème en arrêtant ces pro­grammes.

Htop : la solution open source avec la ré­par­ti­tion des threads

Par défaut, les systèmes d’ex­ploi­ta­tion clas­siques, possèdent déjà un ges­tion­naire de processus qui est installé et offre des commandes ap­pro­priées pour vi­sua­li­ser et gérer les processus. Il existe cependant des pro­grammes al­ter­na­tifs comme htop : ce moniteur système est ca­rac­té­risé par une meilleure vi­sua­li­sa­tion des données des processus et surtout il est bien plus facile à manier. Il est à l’origine développé ex­clu­si­ve­ment comme ges­tion­naire de tâches Linux, sous licence GNU, et remplit le même rôle que la commande top per­met­tant ainsi aux processus actifs d’être affichés sur les systèmes UNIX. De plus, le terminal est remplacé par un masque d’entrée avec une interface de texte basée en C sur la bi­blio­thèque ncurses. De cette façon, htop peut être utilisé fa­ci­le­ment avec le clavier sans avoir à entrer des commandes complexes. Le ges­tion­naire de processus, édité en 2004 par Hisham Muhammad, s’est depuis cette date com­plé­te­ment développé ; il indique les tâches actives mais aussi chaque thread (fil ou tâche d’exécution) in­di­vi­duel. Cette opération re­pré­sente une des­crip­tion bien plus détaillée de chaque processus et permet ainsi une éva­lua­tion bien plus précise. Il existe quelques rac­cour­cis clavier pour htop et, démarré dans un en­vi­ron­ne­ment de bureau, le ges­tion­naire peut même être contrôlé avec la souris. Par exemple, si on utilise la dernière bi­blio­thèque ncurses, on peut parcourir et faire défiler avec la molette de la souris afin d’avoir une rapide vue d’ensemble du processus. En plus des dis­tri­bu­tions Linux et Ubuntu, le ges­tion­naire de tâches est désormais aussi dis­po­nible avec sa dernière version sur les dérivées UNIX FreeBSD, OpenBSD et Mac OS X.

Comment est construit le ges­tion­naire de tâches pour Linux ?

L’interface d’htop est divisée en trois parties :

  • L’en-tête
  • La zone prin­ci­pale
  • Le pied de page

L’en-tête, scindé en deux, présente par défaut sur le côté gauche l’uti­li­sa­tion de dif­fé­rents cœurs de pro­ces­seurs en pour­cen­tage ainsi que l’uti­li­sa­tion de la mémoire (« Mem ») et la mémoire virtuelle paginée (« Swp ») en Mé­gaoc­tects (Mo). La partie droite indique quant à elle le nombre de tâches actives et de threads, l’état de la batterie du système, la durée de fonc­tion­ne­ment du système (« Uptime ») ainsi que la moyenne de la charge système (« Load average ») qui est spécifiée dans les trois valeurs clas­siques. L’en-tête peut être librement configuré, de sorte que par exemple la valeur moyenne peut être affichée au lieu de l’uti­li­sa­tion in­di­vi­duelle des cœurs du pro­ces­seur.

La zone prin­ci­pale ré­per­to­rie tous les processus actifs, avec les valeurs suivantes :

PID Iden­ti­fiant du processus
USER Uti­li­sa­teur qui exécute le processus
PRI La priorité du processus
NI Valeur nice du processus (utilisée pour la gestion dynamique des priorités des processus)
VIRT Mémoire virtuelle utilisée par le processus
RES Quantité de mémoire physique utilisée par le processus
SHR Quantité de mémoire réel­le­ment partagée (avec d’autres processus)
S Statut du processus, par exemple les valeurs « Z » pour zombie (arrêté) ou « R » pour running (en uti­li­sa­tion)
CPU% Temps de charge du processus en pour­cen­tage (charge CPU)
MEM% Uti­li­sa­tion de la mémoire en pour­cen­tage
TIME+ Temps total d’uti­li­sa­tion du processus depuis son lancement
Command La commande qui initie le processus dont les threads.

Le pied de page d’htop propose plusieurs boutons qui peuvent être sé­lec­tion­nés en un simple clic de souris ou via les touches de fonction F1 à F10.

Htop : touches de fonction et autres commandes

Alors que le reste de l’outil traite ex­clu­si­ve­ment des sta­tis­tiques et du listage des processus, les boutons men­tion­nés dans la barre en pied de page sont des outils élé­men­taires pour htop. L’uti­li­sa­tion de la souris ou bien du clavier ne jouent aucun rôle. Cependant si vous utilisez le clavier, vous obtenez alors un certain nombre de commandes im­por­tantes et utiles qui dépassent les capacités des touches de fonction pré­sen­tées et facilite ainsi gran­de­ment le maniement du ges­tion­naire de tâches. Ci-dessous un résumé et la sig­ni­fi­ca­tion des touches de fonction et d’autres rac­cour­cis :

Touches ou com­bi­nai­sons de touches Al­ter­na­tive(s) Fonctions et sig­ni­fi­ca­tions
[F1] [?] oder [h] Affiche le menu « aide »
[F2] [Shift] + [s] Affiche le menu de con­fi­gu­ra­tion
[F3] [/] Fonction de recherche d’un processus
[F4] [\] Fonction de recherche d’un processus par son nom
[F5] [t] Ac­ti­va­tion ou dé­sac­ti­va­tion de l’ar­bo­res­cence des processus
[F6] [>] Affiche le menu tri (oc­cu­pa­tion mémoire etc.)
[F7] ] Réduit la valeur nice du processus
[F8] [ Change la valeur nice du processus (priorité du processus)
[F9] [k] Sup­pres­sion d’une tâche, d’un processus
[F10] [q] ou [Strg] + [c] Pour quitter htop
[espace] Indique le(s) processus sé­lec­tionné(s)
[Shift] + [u] Surpprime toutes les sé­lec­tions
[Shift] + [p] Tri des processus en fonction du CPU (CPU%)
[Shift] + [m] Tri des processus en fonction de l’uti­li­sa­tion de la mémoire (MEM%)
[Shift] + [t] Tri des processus en fonction du temps des processus (TIME+)
[u] Permet de sé­lec­tion­ner un uti­li­sa­teur spé­ci­fique
[Shift] + [k] Masque les cœurs de threads (du système spé­ci­fique)
[Shift] + [h] Masque les threads uti­li­sa­teur (spé­ci­fique à l’ap­pli­ca­tion)
[Shift] + [f] Adapte le curseur au processus sé­lec­tionné

Comment installer htop

Comme avec les pro­grammes open source, vous pouvez installer htop en utilisant soit les fichiers sources, soit les fichiers binaires et le ges­tion­naire de paquets de chaque dis­tri­bu­tion. Té­lé­char­gez-le tout d’abord. Ensuite, vous pouvez l’installer avec les commandes suivantes :

$ wget https://hisham.hm/htop/releases/2.0.1/htop-2.0.1.tar.gz
$ tar -xzvf htop-2.0.1.tar.gz
$ cd htop-2.0.1./
$ ./configure
$ make
# make install

Cependant, si vous préférez la version avec le ges­tion­naire de paquets, vous devez d’abord vous assurer que la version actuelle d’htop est incluse dans votre dis­tri­bu­tion. Si c’est bien le cas, vous pouvez alors procéder au modèle d’ins­tal­la­tion classique de votre système. Par exemple sous Ubuntu, le ges­tion­naire de tâches est configuré en entrant la commande suivante :

sudo apt-get install htop

Con­clu­sion : un ges­tion­naire de tâches clair et facile

htop intègre la commande classique UNIX top comme modèle et séduit surtout par son interface de texte basée sur ncurses. Ainsi les processus in­di­vi­duels et les threads ne sont pas seulement présentés d’une manière agréable et claire, mais le fonc­tion­ne­ment même avec l’uti­li­sa­tion de la souris ou du clavier est bien plus intuitif qu’avec des outils de ligne de commande de base. L’uti­li­sa­tion simple des touches de fonction et des autres commandes sim­pli­fient la na­vi­ga­tion et la con­fi­gu­ra­tion pour stopper des processus ou modifier les priorités. Les al­ter­na­tives pour les ad­mi­nis­tra­teurs ex­pé­ri­men­tés sont à côté du vieux top, le ges­tion­naire de processus très similaire atop qui est installé par défaut ainsi que l’outil mul­ti­pla­te­forme Glances.

Aller au menu principal