Utilisation de la commande TOP et notion de load average sous Linux.

Utilisation de la commande TOP et notion de load average sous Linux

La commande top vous permet d’afficher des informations en continu sur l’activité du système. Elle permet surtout de suivre les ressources que les processus utilisent (quantité de RAM, pourcentage de CPU, la durée de ce processus depuis son démarrage). Nous aborderons aussi  la notion de load average (charge moyenne) du système.

La commande TOP

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. Si vous n’arrivez pas à réaliser un diagnostic sur un problème, vous pouvez contacter un informaticien qui vous aidera et vous indiquera la marche à suivre. En attendant, vous pouvez suivre nos conseils.

Avant toute chose, ouvrez un terminal sous linux et taper la commande suivante pour connaitre le load average de votre serveur :

quicktutoriel#top

La commande TOP (load average) 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.

Voici le résultat de cette commande. Nous utiliserons cette copie d’écran comme base de notre tutoriel.

Uptime et load average

Uptime et 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.

Une machine qui a une charge de plus de 1 par processeur (1 pour mono-processeur, 2 pour un bi-processeur, …) est considérée comme chargée.

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.

Connaître le nombre de processeurs sous linux

quicktutoriel# dmesg |grep CPU

Connaître le nombre de processeurs sous linux

Comme vous pouvez le voir, ici nous avons 8 CPU.

quicktutoriel#cat /proc/cpuinfo

Connaître le nombre de processeurs sous linux

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

Les tâches avec la commande TOP

  • 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

Utilisation du Processeur sous Linux avec la commande TOP

  • 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

Utilisation de mémoire physique et virtuelle avec la commande TOP

  • 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.

Détails des processus

Détails des processus avec la commande TOP

  • 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.

Liste de raccourcis pratique pour le mode interactif de la commande top sous Linux

Astuce !!! Pour sortir de la commande top, taper q.

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.

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.

Signature manuelle Guillaume

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *