Commande top sous Linux

Nilesh Katuwal 30 janvier 2023
  1. Répartition de la commande top sous Linux
  2. Informations sur le processeur
  3. Utilisation de la commande top sous Linux
Commande top sous Linux

La commande top sous Linux est destinée à aider les utilisateurs à déterminer quels processus sont actifs et quelles applications consomment plus de mémoire ou de puissance de traitement qu’elles ne le devraient.

La commande top est simple à utiliser, mais vous devez connaître les détails. La charge moyenne est une mesure problématique pour évaluer les performances d’un serveur.

Répartition de la commande top sous Linux

Saisie de top dans le terminal :

$ top

Production :

top - 00:04:54 up  3:30,  1 user,  load average: 1.84, 3.02, 2.50
Tasks: 233 total,   2 running, 231 sleeping,   0 stopped,   0 zombie
%Cpu(s): 38.5 us,  9.5 sy,  0.0 ni, 51.6 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   3840.9 total,    277.3 free,   2286.3 used,   1277.3 buff/cache
MiB Swap:   2048.0 total,   1447.0 free,    601.0 used.    777.7 avail Mem 
  • Le top - 00:04:54 up 3:30, 1 user, : la commande affiche l’heure système actuelle, suivie du uptime, qui est de 3 heures et 30 minutes dans ce cas, et enfin, le nombre d’utilisateurs connectés au système, qui est de 1 dans ce cas. Via SSH, cela peut se faire localement sur la box, en veille, sur l’écran, etc.
  • La load average: 1.84, 3.02, 2.50 : Cette section affiche la charge moyenne, ce qui peut être un concept déroutant, surtout lorsqu’il s’agit de machines virtuelles et du cloud. Le premier nombre est la moyenne de charge actuelle, le deuxième nombre est la moyenne de cinq minutes et le troisième nombre est la moyenne de charge de 15 minutes.
  • Les Tasks: 233 total, 2 running, 231 sleeping, 0 stopped, 0 zombie : le nombre d’applications apparaît lorsque vous tapez ps aux ou une variante de son utilisation

Le nombre de processus en cours indique combien votre CPU est actuellement utilisé. Étant donné que les applications non multithread ne peuvent utiliser qu’un seul processeur à la fois, il est courant de voir deux méthodes occuper 50 % de votre processeur avec une charge moyenne de 2 sur un serveur quadricœur.

Le nombre de processus en veille indique qu’ils fonctionnent mais qu’ils ne sont pas activement utilisés ; cela inclut généralement de nombreux travaux d’arrière-plan, des logiciels système, des pilotes d’imprimante et d’autres éléments de ce type.

Sauf si vous avez délivré un SIGSTOP ou un kill-STOP à un processus pour dépannage, le nombre de processus arrêtés doit être 0. Une valeur différente de 0 peut inquiéter les systèmes de production.

Les processus impliquant des zombies indiquent qu’une application multithread a créé un processus enfant qui s’est soudainement détruit ou terminé, laissant un processus zombie.

Si quelque chose de terrible se produit, Apache réagira très probablement avec vengeance. Dans la plupart des cas, cela devrait également être 0.

Informations sur le processeur

%Cpu(s): 38.5 us, 9.5 sy, 0.0 ni, 51.6 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st

  • Le pourcentage de temps que chaque processeur utilise jusqu’à 100 %. Par conséquent, sur un quad-core avec un processus prenant 100 % d’un processeur, cela indiquera une utilisation de 25 %. Sur un système à 8 cœurs, 12,5 % signifie qu’un cœur est épinglé.
  • Le terme pourcentage d'utilisation du processeur du système fait référence à la quantité de processeur du système utilisée. Des nombres plus élevés ici pourraient suggérer un problème avec les configurations du noyau, un problème de pilote ou un certain nombre d’autres raisons.
  • Le pourcentage ni indique le pourcentage de CPU utilisé par les processus utilisateur qui ont été influencés par les commandes nice ou renice, c’est-à-dire que leurs priorités ont été modifiées de la valeur par défaut de l’ordonnanceur à une valeur supérieure ou inférieure. Un nombre positif indique une priorité inférieure, tandis qu’un nombre négatif indique une priorité plus élevée. La valeur par défaut est 0, ce qui suggère que le planificateur prend la décision.
  • Le résultat de la soustraction des trois chiffres précédents de 100,0 % est un pourcentage id, qui mesure la puissance de traitement inactive.
  • Le wa est le % d'E/S en attente par CPU. Lorsqu’un processus ou un programme a besoin de données, il vérifie d’abord les caches du processeur, puis la mémoire et enfin le disque. Il doit généralement attendre que le thread IO ait fini de lire les informations dans la RAM avant de travailler à nouveau dessus lorsqu’il atteint le disque. Plus le disque est lent, plus le pourcentage d’attente d’E/S est élevé pour chaque processus. Si le temps d’attente est systématiquement supérieur à 100/(nombre de processeurs * nombre de processus), nous pouvons avoir un problème de stockage qui doit être surveillé. Vérifiez d’abord ce nombre si vous détectez une charge moyenne élevée. Si cette valeur est élevée, les processus sur votre disque sont bloqués.
  • Le si est le temps passé à traiter les interruptions logicielles. Plutôt qu’un élément matériel ou un périphérique (pilote) demandant une interruption sur la ligne d’interruption de la carte mère, le noyau Linux inclut une capacité dans la version 2.4 qui permet au logiciel de demander une interruption et au noyau de la gérer via son gestionnaire d’interruption. Cela signifie qu’une application peut demander un statut prioritaire, que le noyau peut accuser réception de la demande et que le logiciel attendra patiemment que l’interruption soit traitée.
  • Le st fait référence au temps volé par les machines virtuelles. Nous n’utilisons pas de VM pour limiter le CPU, donc laisser une VM ou deux utiliser 8 CPU à l’occasion ne nuira pas au pool dans son ensemble. Si le nombre de processeurs physiques (ou de processeurs logiques dans le cas des xeons hyperthreadés) utilisés par les processeurs virtuels des VM est supérieur au nombre de processeurs physiques, le temps de vol augmentera.

Utilisation de la commande top sous Linux

Pour afficher la syntaxe de la commande top :

$ top -h

Production :

procps-ng 3.3.16
Usage:
  top -hv | -bcEHiOSs1 -d secs -n max -u|U user -p pid(s) -o field -w [cols]

Vous pouvez utiliser la commande top en mode sécurisé.

$ top -s

Article connexe - Linux Command