Dans l’univers de la surveillance système Linux, la commande top est un outil incontournable pour analyser en temps réel l’utilisation des ressources d’un serveur. Que vous soyez administrateur système ou simple utilisateur curieux, comprendre les informations affichées par cette commande vous permettra d’optimiser les performances de votre machine. Un des indicateurs clés à surveiller est le load average, qui reflète la charge globale du système. Dans cet article, nous allons explorer en détail l’usage de la commande top, son interprétation et son rôle essentiel dans la gestion des performances sous Linux.
Sommaire de l'article
- 1 Comprendre la commande TOP sous Linux
- 2 Interpréter le load average
- 3 Connaître le nombre de processeurs sous linux
- 4 Les tâches
- 5 Utilisation du Processeur
- 6 Utilisation de mémoire physique et virtuelle
- 7 Détails des processus
- 8 Liste de raccourcis pratique pour le mode interactif
- 9 Surveiller et gérer les processus consommateurs sous Linux avec TOP
- 10 Ajuster la priorité d’un processus avec renice
- 11 Les équivalents de la commande TOP
Comprendre la commande TOP sous Linux
La commande TOP est une des premières commandes à connaitre et savoir utiliser lorsqu’on est sur Linux. Elle permet de surveiller son système et d’identifier des dysfonctionnement. Lorsqu’on vient du monde de Windows, on peut la comparer au gestionnaire de tâches.
Avant toute chose, ouvrez un terminal sous linux et taper la commande suivante pour connaitre le load average de votre serveur :
quicktutoriel#top
Voici le résultat de cette commande. Nous utiliserons cette copie d’écran comme base de notre tutoriel.
Interpréter le load average
- top – : rappel de la commande
- 16 :12 :19 : heure de la machine
- up 540 days : uptime de la machine c’est-à-dire le temps depuis lequel tourne la machine sans interruption. Le redémarrage de la machine remet à zéro l’uptime.
- 1 user : nombre d’utilisateur actuel, ayant ouvert une session sur le serveur
- load average 1.30, 1.77, 1.65 : Charge moyenne de la machine, nous allons nous attarder un peu plus sur ces valeurs que vous retrouver sur de nombreuses machines linux. Le load average est découpé en 3 parties : le premier est calculé sur la dernière minute, le second 5 minutes et le dernier 15 minutes, cela indique la charge moyenne de votre système.
Pour faire simple, le load average, c’est le nombre de processus en train d’utiliser le(s) processeur(s) ou en train d’attendre de pouvoir les utiliser. Que ce soit pour les 1,5 ou 15 minutes elles ont la même grandeur sauf que la durée est changée, ici pour mon exemple j’ai une moyenne de 1.30 processus qui ont utilisés le processeur pendant la dernière minute, 1.77 les 5 dernières minutes et 1.65 sur les 15 dernières minutes.
La raison d’un load average élevé n’est pas forcément un manque de puissance de calcul, il peut par exemple y avoir beaucoup de processus en attente d’entrées/sorties (disque dur, CD, réseau, …) sans que le processeur ne soit réellement sollicité.
Pour y voir plus clair, le programme top indique également le taux d’utilisation des CPU sur la troisième ligne de sa sortie ce qui permet de déterminer en partie où se situe le goulot de performances. Enfin si vous souhaitez en savoir plus sur cette commande je vous conseille de lire documentation officielle de la commande top.
Connaître le nombre de processeurs sous linux
quicktutoriel# dmesg |grep CPU
Comme vous pouvez le voir, ici nous avons 8 CPU.
quicktutoriel#cat /proc/cpuinfo
Sur la ligne Processor nous pouvons voir 7, donc comme la numérotation commence à 0 nous avons donc 8 CPU logique. De plus si vous regarder en détai la ligne CPU Cores, celle-ci nous donne le nombre de CPU physique, ici 4.
Les tâches
- Task 125 total : Nombre de processus au total
- 2 running : Nombre de processus actifs
- 115 sleeping : Nombre de processus endormis, Un processus endormi ne fait rien. Il attend une condition pour redevenir exécutable ou actif. Il peut se mettre lui-même en sommeil. Un programme par exemple peut attendre quelques secondes avant de poursuivre son exécution pour laisser le temps à l’utilisateur de lire un message affiché. Mais il peut aussi être mis en sommeil par le noyau en attendant que ce qu’il demande soit disponible. Pour illustrer ceci, on peut observer un programme de chat (IRC) permettant de dialoguer sur Internet avec d’autres personnes. Tant que personne n’écrit rien, ce programme n’a rien à faire. Il va tout d’abord dire au système qu’il souhaite lire les informations qui arrivent d’Internet. Si rien n’est présent, il est mis dans un état endormi. Il sera alors réveillé dès que quelqu’un écrit un message afin que le processus puisse le traiter.
- 0 stopped : Nombre de processus arrêtés
- 8 zombie : Nombre de processus zombies, Un tel processus est en réalité terminé. Il a fini son exécution et n’a donc plus de raisons d’exister. Seulement pour diverses raisons possibles, son père n’a pas été informé de ceci. Et tout processus doit prendre connaissance de la fin de ceux qu’il a lancés (ses fils). Le système conserve donc les informations correspondant au processus enfant afin que son parent puisse voir qu’il a fini son exécution.
Utilisation du Processeur
- 9.4%us : Temps CPU utilisé par les processus de l’utilisateur
- 1.9%sy : Temps CPU utilisé par le noyau et ses processus
- 0.0%ni : Temps CPU utilisé par les processus de l’utilisateur qui ont été « nicés » (« nice » signifie gentil en anglais, un processus gentil laisse passer en priorité les autres processus, plus la priorité est forte et positive et plus le processus est gentil pour les autres processus).
- 88.6%id : Temps CPU non sollicité
- 0.1%wa : Temps CPU pour attente I/O, si ce chiffre est important en permanence, comme 20 ou plus par exemple cela veut dire que votre ordinateur à des instructions en attentes il est probable que votre ordinateur commence à ramer pour les traitements que vous lui demander. Cela peut être aussi une tâche mal conçue qui consomme énormément de CPU. Cette valeur est très importante et doit être proche de 0 le plus souvent.
- 0.0%hi : Temps CPU utilisé pour les interruptions matérielles
- 0.0%si : Temps CPU utilisé pour les interruptions logicielles
- 0.0%st : Temps CPU « volé » de cette machine virtuelle par l’hyperviseur pour d’autres tâches (utilisation pour une autre VM par exemple)
Utilisation de mémoire physique et virtuelle
- Mem : Mémoire physique (totale, utilisée, libre et tampons)
- Swap : Mémoire virtuelle (totale, utilisée, libre et en cache), La mémoire swap est mécanisme de mémoire virtuelle. Le but de ce mécanisme est de permettre à des applications d’utiliser plus de mémoire vive que n’en contient physiquement la machine. Pour réaliser cela, l’astuce consiste à utiliser un support de stockage de masse (disque dur) pour simuler la mémoire.
Très grossièrement, lorsqu’une application demande plus de mémoire qu’il n’en existe de disponible, le système détermine quelle application utilise la mémoire à un instant donné. Plutôt que d’allouer des morceaux de mémoire à toutes les applications, il met alors en veille certaines d’entre elles et copie sur le disque une image de la mémoire qu’elles utilisent. Il libère ainsi des morceaux de mémoire vive pour l’application gourmande.
Notre serveur n’utilise pas de mémoire SWAP, par contre toute sa mémoire physique est pratiquement utilisée.
Cette gestion efficace évite les aléas du Plinko en ligne, où les ressources pourraient se retrouver dispersées de manière imprévisible.
Détails des processus
- PID : Le PID du processus, Il s’agit d’une valeur numéraire qui spécifie quels processus sont en cours simultanément dans un ordinateur multitâche.
- USER : L’utilisateur qui exécute ce processus
- PR : La priorité de la tâche. (Plus le chiffre est petit plus la tâche est prioritaire).
- NI : Le nice de la tâche.
- VIRT : Taille virtuelle d’un processus, c’est la somme de la mémoire qu’il utilise réellement en mémoire (pas qu’en mémoire vive), toute mémoire : vidéo (serveur X), bibliothèques, sémaphores … C’est la quantité de mémoire dont le processus a accès immédiatement
- RES : Quantité de mémoire physique occupée par le processus
- SHR : Indique quelle quantité de la colonne VIRT est réellement partagée
- S : Statut du processus. Les valeurs possibles sont : S (sleeping), D (uninterruptible sleep), R (running), Z (zombie), ou T (stopped or traced), peut être précédé par < (negative nice value), N (positive nice value), ou W (swapped out).
- %CPU : Charge CPU
- %MEM: Charge mémoire
- TIME+: Temps total d’utilisation du processeur depuis le lancement du processus
- COMMAND : Nom du processus
Liste de raccourcis pratique pour le mode interactif
Le mode interactif est le mode par défaut de la commande TOP. L’affichage se met à jour toutes les 3 secondes. Voici une liste de raccourcis que vous pouvez utiliser sur cet écran pour interagir sur les résultats affichés.
Surveiller et gérer les processus consommateurs sous Linux avec TOP
Lorsque votre serveur ou votre machine Linux semble ralentie, il est essentiel d’identifier les processus consommateurs de ressources. La commande top est un outil puissant qui affiche en temps réel l’activité du système.
Exécuter la commande top en CLI, vous verrez apparaître une liste des processus en cours d’exécution, avec plusieurs colonnes importantes :
- PID : Identifiant du processus
- USER : Utilisateur exécutant le processus
- %CPU : Pourcentage d’utilisation du processeur
- %MEM : Pourcentage d’utilisation de la mémoire
- COMMAND : Nom de la commande associée au processus
Trier les processus par consommation CPU ou RAM
Dans TOP, utilisez les touches suivantes pour trier les processus :
- P → Trier par utilisation CPU
- M → Trier par utilisation mémoire
Terminer un processus avec KILL
Si un processus utilise trop de ressources et impacte les performances du système, vous pouvez le stopper avec la commande kill.
Étape 1 : Identifier le PID
Dans top, repérez le PID du processus problématique.
Étape 2 : Envoyer un signal kill
Utilisez la commande suivante :
kill PID
Si le processus ne se ferme pas, utilisez le signal -9 (SIGKILL) pour le forcer :
kill -9 PID
Ajuster la priorité d’un processus avec renice
Au lieu de tuer un processus, vous pouvez modifier sa priorité pour réduire son impact sur le système avec la commande renice.
Étape 1 : Vérifier la priorité actuelle (nice)
Dans top, la colonne NI (Nice value) indique la priorité du processus. Les valeurs vont de -20 (priorité haute) à 19 (priorité basse).
Étape 2 : Modifier la priorité avec renice
renice PRIORITÉ -p PID
Si vous souhaitez approfondir vos connaissances, ce guide avancé sur la gestion des processus sous Linux vous expliquera comment surveiller, prioriser et optimiser l’exécution des tâches système pour améliorer les performances de votre serveur.
Les équivalents de la commande TOP
La commande TOP a fait beaucoup d’émules. Certains sont inutiles mais d’autres apportes des fonctionnalités intéressantes notamment dans la présentation des informations sous forme graphique par exemple. Vous trouverez ci-dessous une liste d’utilitaires similaire à la commande TOP.
Quick-Tutoriel.com Network & System Admin.









Merci pour cet article détaillé sur la commande TOP ! J’ai toujours trouvé le load average un peu flou, mais vos explications claires et les exemples pratiques m’ont vraiment aidé à mieux comprendre comment l’analyser. Hâte de mettre ces conseils en pratique !