Introduction
La surveillance des processus système est une compétence essentielle pour les utilisateurs Linux et les administrateurs système. Comprendre quels processus sont en cours d'exécution et comment ils consomment les ressources vous permet de maintenir la stabilité et les performances du système.
Dans ce laboratoire (lab), vous apprendrez à utiliser la commande top, un outil puissant pour la surveillance en temps réel des processus du système Linux. La commande top fournit des informations détaillées sur l'utilisation du CPU, la consommation de mémoire et d'autres métriques système importantes. En maîtrisant cette commande essentielle, vous pourrez identifier les processus gourmands en ressources et gérer efficacement les ressources de votre système Linux.
Introduction à la commande top
La commande top est un utilitaire Linux de base qui affiche une vue dynamique et en temps réel des processus en cours d'exécution sur votre système. Le nom "top" fait référence à son comportement par défaut qui consiste à afficher les processus consommateurs les plus importants de CPU (les "top" processus).
Commençons par accéder à votre répertoire de projet et explorons l'utilisation de base de la commande top :
cd ~/project
Maintenant, exécutons la commande top :
top
Lorsque vous exécutez cette commande, vous devriez voir un affichage interactif similaire au suivant :
top - 14:25:30 up 2 days, 3:45, 1 user, load average: 0.15, 0.20, 0.25
Tasks: 105 total, 1 running, 104 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.0 us, 1.0 sy, 0.0 ni, 97.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 4096.0 total, 2841.3 free, 845.2 used, 409.5 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 2970.5 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 labex 20 0 562340 42340 28456 S 2.0 1.0 0:30.25 firefox
2345 labex 20 0 78912 23456 13204 S 0.7 0.6 0:12.34 terminal
3456 root 20 0 43528 5424 4356 S 0.3 0.1 0:05.67 sshd
... (more processes)
L'affichage de top se compose de deux sections principales :
Zone de synthèse (les 5 premières lignes) : Fournit des informations sur l'ensemble du système, notamment :
- Le temps de fonctionnement du système et les moyennes de charge
- Les statistiques des tâches (total, en cours d'exécution, en veille, etc.)
- Les pourcentages d'utilisation du CPU
- L'utilisation de la mémoire (RAM et Swap)
Liste des processus (tableau sous la synthèse) : Répertorie les processus en cours d'exécution avec des détails tels que :
- PID : Identifiant du processus
- USER : Propriétaire du processus
- PR : Priorité
- NI : Valeur de nice
- VIRT : Mémoire virtuelle utilisée
- RES : Mémoire résidente utilisée
- %CPU : Pourcentage d'utilisation du CPU
- %MEM : Pourcentage d'utilisation de la mémoire
- COMMAND : Nom de la commande
Par défaut, l'affichage se rafraîchit automatiquement toutes les 3 secondes. Pour quitter la commande top, appuyez simplement sur la touche q.
Maintenant, capturons une capture statique des processus en utilisant l'option -n 1. Cela indique à top de mettre à jour une seule fois puis de quitter :
top -n 1 > ~/project/top_snapshot.txt
Cette commande crée un fichier nommé top_snapshot.txt dans votre répertoire de projet contenant une capture des processus système actuels. Vérifions le contenu du fichier :
cat ~/project/top_snapshot.txt
Vous devriez voir une sortie similaire à celle affichée dans la session interactive de top, mais sous forme de fichier texte statique.
Interprétation de la sortie de la commande top
Maintenant que vous avez une capture des processus système, analysons les informations pour comprendre ce qu'elles nous disent sur l'utilisation des ressources du système.
Ouvrez le fichier top_snapshot.txt à l'aide de l'éditeur de texte nano :
nano ~/project/top_snapshot.txt
Dans ce fichier, vous pouvez voir les mêmes informations que celles affichées par la commande interactive top. Concentrons-nous sur l'identification du processus le plus gourmand en CPU dans la liste.
Regardez la section de la liste des processus (en dessous de la zone de synthèse) et trouvez le processus ayant la valeur la plus élevée dans la colonne %CPU. Cela indique le processus qui consommait le plus de CPU au moment où la capture a été prise.
Par exemple, si vous voyez une ligne comme celle-ci :
1234 labex 20 0 562340 42340 28456 S 2.0 1.0 0:30.25 firefox
Cela montre que le processus avec le PID 1234 (firefox) appartenant à l'utilisateur "labex" utilisait 2,0 % du CPU et 1,0 % de la mémoire.
Notez les informations suivantes pour le processus ayant la plus forte utilisation de CPU :
- PID (Identifiant du processus)
- USER (le propriétaire du processus)
- %CPU (Pourcentage d'utilisation du CPU)
- %MEM (Pourcentage d'utilisation de la mémoire)
- COMMAND (La commande ou le programme en cours d'exécution)
Pour quitter nano, appuyez sur Ctrl+X.
Maintenant, créez un fichier nommé top_analysis.txt pour documenter vos découvertes :
echo "Most CPU-intensive process analysis" > ~/project/top_analysis.txt
Ajoutez les détails du processus le plus gourmand en CPU au fichier. Remplacez les espaces réservés par les valeurs réelles que vous avez observées :
echo "PID: [Replace with PID]" >> ~/project/top_analysis.txt
echo "USER: [Replace with USER]" >> ~/project/top_analysis.txt
echo "CPU%: [Replace with %CPU]" >> ~/project/top_analysis.txt
echo "MEM%: [Replace with %MEM]" >> ~/project/top_analysis.txt
echo "COMMAND: [Replace with COMMAND]" >> ~/project/top_analysis.txt
Par exemple, si le processus 1234 (firefox) était le plus gourmand en CPU, vous entreriez :
echo "PID: 1234" >> ~/project/top_analysis.txt
echo "USER: labex" >> ~/project/top_analysis.txt
echo "CPU%: 2.0" >> ~/project/top_analysis.txt
echo "MEM%: 1.0" >> ~/project/top_analysis.txt
echo "COMMAND: firefox" >> ~/project/top_analysis.txt
Vérifions ce que nous avons écrit dans le fichier :
cat ~/project/top_analysis.txt
Cela devrait afficher le contenu de votre fichier d'analyse avec les détails du processus le plus gourmand en CPU.
Tri et filtrage des processus dans la commande top
La commande top devient encore plus puissante lorsque vous apprenez à trier et filtrer les processus. Dans cette étape, vous allez apprendre à personnaliser l'affichage de top pour vous concentrer sur des informations spécifiques.
Tout d'abord, exécutons à nouveau la commande interactive top :
top
Pendant que top est en cours d'exécution, vous pouvez utiliser des raccourcis clavier pour modifier son comportement :
- Appuyez sur
M(en majuscule) pour trier les processus par utilisation de mémoire - Appuyez sur
P(en majuscule) pour trier les processus par utilisation de CPU (par défaut) - Appuyez sur
T(en majuscule) pour trier les processus par temps (combien de temps ils ont été en cours d'exécution) - Appuyez sur
N(en majuscule) pour trier les processus par PID (identifiant de processus)
Essayez chacune de ces options de tri pour voir comment la liste des processus change. Lorsque vous avez terminé vos expériences, appuyez sur q pour quitter top.
Maintenant, créons une capture des processus triés par utilisation de mémoire. Nous allons utiliser le mode batch de top avec des options spécifiques :
top -b -n 1 -o %MEM > ~/project/top_sorted_by_mem.txt
Cette commande utilise :
-b: Mode batch (non interactif)-n 1: Exécuter une seule itération-o %MEM: Trier par utilisation de mémoire
Vérifions le contenu de ce fichier :
cat ~/project/top_sorted_by_mem.txt
Vous devriez voir les processus répertoriés par ordre d'utilisation de mémoire, les processus consommateurs de mémoire les plus importants étant en haut.
Ensuite, filtrons les processus pour n'afficher que ceux appartenant à votre compte utilisateur :
top -b -n 1 -u labex > ~/project/top_user_filtered.txt
L'option -u labex filtre la sortie pour n'afficher que les processus appartenant à l'utilisateur "labex". Examinons ce fichier :
cat ~/project/top_user_filtered.txt
Ce fichier ne devrait afficher que les processus appartenant à l'utilisateur "labex".
Enfin, combinons le tri et le filtrage pour créer une vue plus spécifique :
top -b -n 1 -u labex -o %CPU > ~/project/top_custom.txt
Cette commande n'affiche que les processus appartenant à l'utilisateur "labex" et les trie par utilisation de CPU. Vérifions le résultat :
cat ~/project/top_custom.txt
Ces options de personnalisation font de top un outil polyvalent pour vous concentrer sur des aspects spécifiques des performances du système et de l'utilisation des ressources.
Résumé
Dans ce laboratoire (lab), vous avez appris à utiliser la commande top pour surveiller et analyser les processus dans Linux. Les compétences que vous avez acquises sont les suivantes :
- Exécuter la commande
toppour afficher en temps réel les processus système - Comprendre les informations affichées dans la sortie de
top, y compris l'utilisation du CPU, l'utilisation de la mémoire et les détails des processus - Capturer des instantanés (snapshots) des informations sur les processus pour l'analyse
- Identifier les processus gourmands en ressources en examinant l'utilisation du CPU et de la mémoire
- Personnaliser l'affichage de
topgrâce aux options de tri et de filtrage
Ces compétences sont essentielles pour l'administration système et la surveillance des performances dans les environnements Linux. La commande top est l'un des outils les plus fréquemment utilisés pour évaluer rapidement l'état du système et identifier les problèmes potentiels de performance.
En maîtrisant la commande top, vous avez maintenant la capacité de surveiller efficacement les ressources système, d'identifier les processus susceptibles de causer des problèmes de performance et de collecter les informations nécessaires pour optimiser les performances du système.



