Commande Linux top : Surveillance du système en temps réel

LinuxBeginner
Pratiquer maintenant

Introduction

Bienvenue dans ce TP consacré à la commande Linux top. Au cours de cette session, vous apprendrez à utiliser la commande top pour surveiller les processus système et l'utilisation des ressources en temps réel. Cette compétence est indispensable pour les administrateurs système, les développeurs et toute personne devant comprendre et gérer les performances d'une machine.

Imaginez que vous êtes un administrateur système junior chargé de la maintenance d'un serveur web très sollicité. On vous signale que le serveur est lent et vous devez identifier quels processus consomment le plus de ressources. La commande top sera votre outil principal pour cette investigation, vous permettant de visualiser et d'analyser l'activité du système en direct.

Utilisation de base de la commande top

Commençons par exécuter la commande top dans sa forme la plus simple. Cela nous donnera une vue dynamique et en temps réel des processus du système.

Ouvrez un terminal et exécutez la commande suivante :

top

Vous devriez voir un affichage semblable à celui-ci :

top - 14:30:23 up  5:10,  1 user,  load average: 0.15, 0.22, 0.28
Tasks: 213 total,   1 running, 212 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  1.3 system,  0.0 ni, 96.3 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7824.9 total,   2576.8 free,   2935.0 used,   2313.1 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   4558.1 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 user      20   0 3626108 205008  89380 S   2.0   2.6   0:45.85 gnome-shell
 5678 user      20   0  859492  51528  38060 S   1.3   0.6   0:10.91 Xorg
 9101 user      20   0  722816  36096  29088 S   0.7   0.5   0:05.62 gnome-terminal

Cet affichage est mis à jour en continu (par défaut, toutes les 3 secondes). Analysons les informations présentées :

  1. La première ligne indique l'heure actuelle, le temps de fonctionnement du système (uptime), le nombre d'utilisateurs connectés et la charge moyenne (load average).
  2. La deuxième ligne affiche le nombre total de tâches et leurs états (en cours d'exécution, en veille, arrêtées, zombies).
  3. La troisième ligne montre les pourcentages d'utilisation du processeur (CPU).
  4. Les quatrième et cinquième lignes affichent l'utilisation de la mémoire vive (RAM) et de la partition d'échange (Swap).
  5. Le tableau ci-dessous présente les détails de chaque processus, triés par défaut selon l'utilisation du CPU.

Pour quitter top, appuyez sur la touche 'q'.

Trier les processus dans top

Par défaut, top trie les processus par utilisation du CPU. Cependant, vous pouvez modifier ce tri en temps réel. Voyons comment trier par utilisation de la mémoire.

  1. Lancez la commande top :
top
  1. Une fois que top est en cours d'exécution, appuyez sur la touche 'M' (majuscule). Cela triera les processus par utilisation de la mémoire (taille de la mémoire résidente) au lieu de l'utilisation du CPU.

Vous devriez maintenant voir les processus réorganisés, avec les processus les plus gourmands en mémoire en haut de la liste.

  1. Pour revenir au tri par utilisation du CPU, appuyez sur la touche 'P' (majuscule).

  2. Pour trier par identifiant de processus (PID), appuyez sur la touche 'N' (majuscule).

  3. Pour inverser l'ordre de tri actuel, appuyez sur 'R' (majuscule).

N'oubliez pas que vous pouvez toujours appuyer sur 'h' ou '?' pendant que top fonctionne pour afficher un écran d'aide listant toutes les commandes disponibles.

Quittez top en appuyant sur 'q' une fois votre exploration terminée.

Modifier l'intervalle de mise à jour

Par défaut, top rafraîchit son affichage toutes les 3 secondes. Vous pouvez toutefois modifier cet intervalle. Réglons-le sur 1 seconde pour obtenir des mises à jour plus fréquentes.

Lancez top avec l'option -d :

top -d 1

L'affichage se met désormais à jour plus rapidement. Cela s'avère utile pour repérer des processus éphémères ou pour observer des changements rapides dans l'activité du système.

Pour modifier l'intervalle de mise à jour alors que top est déjà lancé :

  1. Appuyez sur 'd' (minuscule).
  2. Saisissez le nouveau délai en secondes (par exemple, '0.5' pour une demi-seconde).
  3. Appuyez sur Entrée.

Gardez à l'esprit que des intervalles de mise à jour très courts peuvent eux-mêmes consommer des ressources CPU non négligeables ; utilisez-les donc avec discernement.

Quittez top en appuyant sur 'q'.

Afficher les processus d'un utilisateur spécifique

En tant qu'administrateur système, vous aurez souvent besoin de surveiller les processus d'un utilisateur précis. La commande top permet de le faire très facilement.

Surveillons les processus de l'utilisateur actuel (qui est 'labex' dans cet environnement de TP) :

top -u labex

Vous ne devriez plus voir que les processus appartenant à l'utilisateur 'labex'.

Cette fonctionnalité est particulièrement pratique pour diagnostiquer des problèmes liés aux activités d'un utilisateur spécifique ou pour vous concentrer sur vos propres tâches dans un système multi-utilisateurs.

Quittez top en appuyant sur 'q' après avoir observé les résultats.

Afficher uniquement les processus actifs

Parfois, vous souhaiterez vous concentrer uniquement sur les processus actifs et ignorer ceux qui sont inactifs. La commande top propose une option dédiée à cet effet.

Lancez top avec l'option -i :

top -i

Cette commande n'affichera que les processus actifs, filtrant tous ceux qui n'ont pas utilisé le CPU depuis la dernière mise à jour.

C'est un excellent moyen d'identifier rapidement quels processus consomment actuellement des ressources, sans être encombré par la liste des processus en sommeil.

Quittez top en appuyant sur 'q'.

Résumé

Félicitations ! Vous avez terminé ce TP sur l'utilisation de la commande top pour la surveillance du système en temps réel. Récapitulons ce que vous avez appris :

  1. L'utilisation de base de la commande top pour visualiser les processus et les ressources.
  2. Comment trier les processus selon différents critères (CPU, mémoire, PID) directement dans l'interface.
  3. La modification de l'intervalle de rafraîchissement pour des analyses plus ou moins précises.
  4. Le filtrage des processus par utilisateur.
  5. L'affichage exclusif des processus actifs pour éliminer les processus inactifs.

Ces compétences seront précieuses pour gérer les ressources de vos machines, notamment pour identifier les goulots d'étranglement ou résoudre des problèmes de performance.

Voici quelques options et commandes interactives supplémentaires de top que nous n'avons pas abordées :

  • -b : Mode "batch" (utile pour envoyer la sortie vers d'autres programmes ou fichiers).
  • -n : Nombre d'itérations avant que top ne s'arrête automatiquement.
  • 'k' : Tuer un processus (via son PID) directement depuis top.
  • 'r' : Modifier la priorité (renice) d'un processus.
  • 'c' : Basculer l'affichage entre le nom de la commande et la ligne de commande complète.
  • 'V' : Afficher les informations de version.

N'oubliez pas qu'une surveillance efficace est cruciale pour maintenir la stabilité d'un système. L'utilisation régulière de top vous aidera à détecter et prévenir les problèmes de ressources avant qu'ils n'affectent gravement vos utilisateurs.