LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


commande:htop_atop

— page corrigée — oh!rocks 2009/05/09 15:17

"htop" et "atop"

Ces deux programmes, “htop” et “atop”, ont la même fonction de base : lister et gérer les processus. Ils sont des équivalents de “top” qui est installé par défaut sur les systèmes GNU-Linux. Pourtant “htop” et “atop” ont des spécificités qui méritent qu'on les essaye.

Ces deux programmes sont rarement présents par défaut et nécessitent d'être installés avec votre gestionnaire de paquets.

<note>Un signe $ précède les commandes qui ne nécessitent pas de droits administrateur ; un signe # précède celles qui nécessitent des droits administrateur (ces signes ne font PAS partie des commandes). Les lignes qui ne commencent pas par un signe $ ou # correspondent au résultat de la commande précédente.
Les touches utilisées sont indiquées entre crochets, exemple [ctrl] pour la touche “contrôle”</note>

"htop", programme interactif et ergonomique

Le lancement de “htop” s'effectue simplement en tapant le nom du programme dans une console. Lancer “htop” en root (ou avec “sudo”) vous permettra de lister tous les processus et d'agir y compris sur ceux qui appartiennent à d'autres utilisateurs.

$ htop

“htop” peut réellement être présenté comme une version améliorée du classique “top”. Dès le lancement, son interface colorée met en évidence les éléments importants et un menu en bas de l'écran liste les commandes les plus utiles.

En haut à gauche de la fenêtre, vous pouvez voir des graphiques représentant l'activité des processeurs et la consommation totale de mémoire (RAM et SWAP). En haut à droite, un petit résumé de l'activité du système : nombre total de processus, charge moyenne, temps écoulé depuis le dernier démarrage.

En dessous, la fenêtre qui liste les processus, classés par défaut en fonction de l'intensité de leur utilisation du processeur. Les titres des colonnes vous renseignent sur leur contenu, les plus évidentes donnent le PID du processus (son numéro d'identifiant), le nom de l'utilisateur qui possède ce processus, la priorité et le coefficient “nice” du processus, les informations liées à son utilisation de la mémoire, son statut, le pourcentage d'utilisation du processeur (CPU%) et de la mémoire (MEM%), et bien entendu le nom de la commande avec ses éventuelles options. Si une ligne est plus longue que votre affichage, vous pouvez vous déplacer avec les flèches droite et gauche du clavier ou bien naviguer dans les processus avec les flèches haut et bas.
En bas de la fenêtre, une barre de menu liste les raccourcis rapides et les options auxquelles ils correspondent ; par exemple, un appui sur la touche [F5] activera l'affichage des processus en arborescence (“tree”), [F6] vous permettra de choisir le critère de classement des processus (“sort by”), [F9] vous permettra d'envoyer un signal au(x) processus sélectionné(s) (utilisez “man kill” pour la liste des signaux et leur signification).

“htop” est conçu pour être totalement interactif. Il permet très facilement d'envoyer un signal à un processus, de changer sa priorité d'exécution, tout en contrôlant le résultat de ces actions sur la charge de l'ensemble du système. On peut effectuer des sélections multiples avec la touche [espace], et les actions s'appliqueront à l'ensemble de la sélection.

L'utilisation de l'aide peut sembler superflue ; elle vous apprendra malgré tout la signification des différents codes de couleurs utilisés ou celle des symboles de la colonne “statut” (utilisez [F1] ou [h] pour accéder à l'aide).

L'affichage est entièrement personnalisable. Les nombres des colonnes d'information, leur ordre, la mise en évidence de certains processus ou un affichage en arborescence sont possibles. Pour accéder aux options, utilisez [F2]. Un exemple de l'écran des options (les menus en bas sont contextuels et changent en fonction des réglages sélectionnés) :

"atop", le "top" des administrateurs pointilleux

atop” a une vocation très différente de “htop”. Il s'en différencie immédiatement par… son manque d'ergonomie et de simplicité !

“atop” donne des informations non seulement sur les processus, mais également sur tous les points névralgiques du système comme l'activité des disques, la charge processeur, l'utilisation du réseau ou de la mémoire (vive et swap). Il permet donc de réellement se faire une idée des processus qui causent une surcharge du système ou de profiler une application particulière pour voir quelles types de ressources elle utilise le plus.

“atop” se décompose en deux parties :

  • le programme “atop” peut être utilisé à la demande, en entrant simplement son nom dans une console. Lancer “atop” avec des droits root permet de voir tous les processus et d'agir sur ceux qui appartiennent à d'autres utilisateurs ou à root.
$ atop

Mais sur la plupart des distributions, l'installation de “atop” entraînera également le lancement au démarrage (via un script dans /etc/init.d) d'une instance de “atop” qui va surveiller et enregistrer régulièrement l'activité du système. Par défaut, “atop” enregistrera ses résultats dans /var/log/ ou /var/log/atop/. Ces journaux, compressés au format binaire, sont conservés pour une durée variable qui peut-être déterminée soit par une tâche “Cron”, soit par un programme comme “logrotate” (comme sur Debian). “atop” permet ensuite de consulter les journaux d'activité avec l'option “-r” (voir plus bas “atopsar” pour une utilisation plus avancée).

$ atop -r /var/log/atop.log.1
  • le programme “atopsar” permet d'effectuer un audit du système, général ou détaillé, pour une durée personnalisable et d'extraire précisément des informations des journaux créés par “atop”.
utilisation de "atop"

Lors d'un lancement manuel “atop” va d'abord afficher un résumé de l'activité du système depuis le dernier démarrage, avant de passer en mode de surveillance des processus en cours. Voici un exemple de l'écran de lancement :

La partie haute de l'écran présente un résumé détaillé de l'activité du système depuis son dernier démarrage. Les abréviations en début de ligne indiquent le domaine concerné (processeur, swap, mémoire, réseau, disque…), la ligne présente des statistiques détaillées. L'ensemble des informations présentées et les symboles utilisés sont détaillés dans le manuel. Voici un court résumé des catégories les plus communes :

  • PRC “process level totals”, soit le temps total d'occupation du processeur, par le système “sys”, les processus utilisateurs “user”, le nombre total de processus “#proc”, le nombre de processus zombie “#zombie”, et le nombre total de processus qui se sont terminés pendant l'intervalle de surveillance “#exit”.
  • CPU Utilisation globale du processeur, suivie de lignes détaillant chaque cœur/processeur actif. Le détail est donné pour tous les processus actifs “sys”, le pourcentage consommé par les processus utilisateur “user”, le pourcentage d'utilisation processeur pour les “irq”, le pourcentage de temps où les processeurs sont inutilisés sans qu'aucun processus ne soit en attente d'entrée/sortie disque “idle”, et enfin lorsque des processus étaient en attente d'entrée/sortie disque “wait” (bon indicateur d'un goulot d'étranglement au niveau des disques).
  • MEM Utilisation de la mémoire physique (ram), avec mémoire totale “tot”, quantité de mémoire libre “free”, cache de pagination “cache”, utilisation mémoire par les métadonnées du système de fichier “buff”, et quantité utilisée par le noyau pour l'allocation dynamique de mémoire (malloc) noté “slab”.
  • SWP Occupation de l'espace d'échange “swap”.
  • DSK Activité disque, une ligne par disque actif. Pourcentage total de temps d'activité “busy”, requête en lecture “read” et écriture “write”, temps (en millisecondes) moyen cumulé pour atteindre les données, la latence, et le transfert de ces données. (important goulot d'étranglement sur les disques lents et/ou vieillissant).
  • NET Activité détaillée de l'utilisation réseau.

La partie basse de l'écran présente les processus ayant provoqué une charge système pendant l'intervalle de mesure, ou ayant été transférés en swap pour cause de manque de mémoire vive.
Les informations fournies sont détaillées dans le manuel. On retiendra la colonne “RGROW” (“Resident Memory Growth”, soit augmentation de la mémoire résidante) qui peut être un indicateur de fuite de mémoire sur un programme (“Memory leak”) si des valeurs élevées et en croissance continue sur plusieurs relevés sont constatées.

Cette affichage préliminaire dure quelques secondes (8), mais peut être prolongé pour un examen minutieux en utilisant la touche “z”. L'affichage est alors suspendu jusqu'à un nouvel appui sur cette touche “z”.

La deuxième phase consiste en une surveillance en temps réel du système avec un affichage toujours décomposé en deux parties : le tableau statistique en haut et la liste des processus en bas.

Les ressources qui connaissent un pic d'activité sont colorées, bleu puis rouge, en fonction de l'importance de la charge. Sur la capture, c'est le cas de l'activité disque.

L'affichage possède de très nombreuses options d'organisation, par exemple :

  • la touche [i] (intervalle) permet de changer l'intervalle de mesure (défaut 10 secondes, trop lent pour certains processus).
  • les combinaisons de touches [ctrl][F] et [ctrl][B] permettent d'afficher la page suivante/précédente.
  • la touche [c] (commandes) permet de voir intégralement les commandes associées aux processus. Le retour à l'affichage général se fait avec la touche [g].
  • la touche [m] permet d'afficher les informations détaillées relatives à l'utilisation de la mémoire.
  • la touche [u] affichera un cumulé des ressources utilisées par utilisateur, [p] par programme, et [U] permettra de cibler les statistiques d'un utilisateur particulier en entrant son nom. Dans tous ces modes, [a] permet de passer successivement d'une vue de tous les processus à celle des processus actifs uniquement
  • Les touches [C], [M], [A], [N], [D], permettent de classer les processus par consommation principale de “CPU” (processeur), “MEM” (mémoire), “ALL” (dynamique, ressource la plus utilisée comme critère de classement). “NET” et “DISK”, qui utilisent respectivement la charge réseau et l'utilisation des disques comme critère de classement, ne sont pas disponibles par défaut (voir plus bas “patch noyau”).
  • Enfin [k] permet d'envoyer un signal à un processus en indiquant son PID.

L'écran d'aide, obtenu en tapant la touche [h] (help), vous renseignera sur l'ensemble des options disponibles :

“atop” peut également écrire le résultat dans un fichier de journal, compressé au format binaire, avec l'option “-w” suivi du chemin où stocker les journaux :

$ atop -w /home/tux/atoplog 30 3

Ici on lance “atop” pour une séquence de surveillance de 30 secondes, répétée 3 fois, avec écriture du journal dans le fichier (créé par “atop”) “/home/tux/atoplog” .

"atopsar" pour un audit du système

Livré avec “atop” le programme “atopsar” permet d'effectuer un audit, général ou ciblé sur quelques critères, de l'utilisation des ressources système sur une période de temps personnalisable. L'exemple suivant enregistre l'activité des disques durs (option -d) pendant 60 secondes, répété 5 fois de suite :

$ atopsar -d 60 5

Le résultat en image :

On peut également utiliser toutes les options de surveillance disponibles (option -A) ou cumuler les options de surveillance qui sont très nombreuses et parfaitement détaillées dans le manuel. Par exemple pour une surveillance des disques (-d), de l'utilisation de l'espace d'échange “swap” (-s), des processeurs (-c) et de la mémoire(-m), pendant deux sessions de 30 secondes :

$ atopsar -dscm 30 2

Résultat de la deuxième session uniquement :

"atopsar" pour exploiter les journaux produits par "atop"

“atop” écrit de manière régulière des journaux d'activité, et on peut lui indiquer d'écrire le résultat d'une utilisation ponctuelle avec l'option “-w”. Pour exploiter ensuite ces journaux “atopsar” peut être employé avec l'option “-r” (“read”) :

$ atopsar -r /var/log/atop.log.2

Si “-r” n'est pas précisé, c'est le dernier journal du jour qui est utilisé. Si on indique l'option “-A” tous les critères de surveillance enregistrés seront affichés (résultat très long à visionner…).
On peut indiquer certains critères à extraire du journal ainsi qu'une une plage de temps, par exemple :

atopsar -micd -r /var/log/atop.log.2 -b 15:30 -e 18:30

Cela va extraire du journal “/var/log/atop.log.2” l'activité liée à la mémoire, au trafic sur les interfaces réseaux, au(x) processeur(s) et aux disques (“-micd”), entre 15h30 (“-b” pour l'heure de début) et 18h30 (“-e” pour l'heure de fin).

Patch noyau

“atop” possède des fonctions de surveillance avancées qui nécessitent l'application d'un patch au noyau (et donc sa recompilation). Ce patch, régulièrement mis à jour, permet d'obtenir des informations très précises sur l'activité disque ou réseau engendrée par chaque processus.
Ce patch n'est absolument pas nécessaire au fonctionnement normal de “atop”, mais peut-être intéressant pour profiler les besoins en ressources réseau et disque d'une application ou traquer un processus qui génère des pics d'activité ralentissant l'ensemble du système. Voir la rubrique “Liens” pour les instructions d'application du patch.


Liens

commande/htop_atop.txt · Dernière modification: 2018/11/17 13:52 (modification externe)