Lorsque vous travaillez sur la ligne de commande Linux, il peut arriver que vous souhaitiez vérifier les détails liés au processus, comme quel processus consomme le plus de CPU ou de mémoire ? Eh bien, il existe une commande - appelée top - qui vous permet de le faire facilement. Dans ce didacticiel, nous aborderons cet outil à l'aide d'exemples faciles à comprendre.
Mais avant cela, il convient de mentionner que tous les exemples mentionnés dans cet article ont été testés sur une machine Ubuntu 16.04 LTS.
Commande supérieure Linux
La commande top affiche une liste de processus ou de threads actuellement gérés par le noyau Linux, ainsi que des informations utiles les concernant. Voici la syntaxe de l'outil :
top [options]
Et voici ce que dit la page de manuel de l'outil :
The top program provides a dynamic real-time view of a running
system. It can display system summary information as well as a
list of processes or threads currently being managed by the Linux
kernel. The types of system summary information shown and the
types, order and size of information displayed for processes are
all user configurable and that configuration can be made persis?
tent across restarts.
The program provides a limited interactive interface for process
manipulation as well as a much more extensive interface for per?
sonal configuration -- encompassing every aspect of its opera?
tion.
Voici quelques exemples de style questions-réponses qui devraient vous donner une bonne idée du fonctionnement de la commande top.
Q1. Comment utiliser le haut ?
Simple, exécutez simplement la commande 'top' sans aucune option :
top
Voici le résultat produit sur mon système :
Notez que ce que vous voyez dans la capture d'écran n'est qu'un instantané de la sortie en temps réel (qui change après un intervalle fixe) qui a été produite.
Q2. Comment comprendre la sortie de la commande supérieure ?
Commençons par la première ligne. Il contient des entrées pour (dans cet ordre), l'heure actuelle, la durée depuis que le système est opérationnel, les sessions utilisateur actives et la charge moyenne sur le système (pour la dernière minute, cinq minutes et quinze minutes, respectivement).
La deuxième ligne contient des informations (dans cet ordre) sur le nombre total de processus, le nombre de processus en cours d'exécution, le nombre de processus en veille, le nombre de processus qui se sont arrêtés et le nombre de processus à l'état zombie.
La troisième ligne contient des informations sur l'utilisation du processeur. Voici les détails :
us, user : time running un-niced user processes
sy, system : time running kernel processes
ni, nice : time running niced user processes
id, idle : time spent in the kernel idle handler
wa, IO-wait : time waiting for I/O completion
hi : time spent servicing hardware interrupts
si : time spent servicing software interrupts
st : time stolen from this vm by the hypervisor
Les deux lignes suivantes affichent des informations relatives à l'utilisation de la RAM et de la mémoire d'échange. Et enfin, viennent les informations relatives aux processus, qui consistent en (dans cet ordre) l'ID de processus, l'utilisateur propriétaire du processus, la priorité du processus, la valeur agréable du processus, la mémoire virtuelle, physique et partagée utilisée par le processus, l'état du processus (En veille, En cours d'exécution ou Zombie), l'utilisation du processeur et de la RAM, le temps d'activité et la commande qui a lancé le processus.
Q3. Comment tuer un processus à partir de la sortie supérieure ?
C'est assez simple - appuyez simplement sur 'k' et top vous demandera le PID du processus que vous voulez tuer. Un message similaire au suivant s'affiche juste au-dessus de la ligne contenant les en-têtes de colonne de processus :
PID to signal/kill [default pid = 3397]
Vous voyez, vous pouvez soit entrer l'ID du processus, soit par défaut, top essaiera de tuer (en envoyant SIGTERM) le premier processus de la liste. Une fois le signal envoyé, un message similaire au suivant est produit.
Send pid 3007 signal [15/sigterm]
Q4. Comment changer la priorité d'un processus ?
Comme 'k' est pour tuer, vous pouvez appuyer sur 'r' au cas où vous voudriez changer la priorité d'un processus (ou vous voudriez le renier). Appuyer sur 'r' produit un message semblable au suivant :
PID to renice [default pid = 3397]
Donc, entrez un PID ou top essaiera de modifier la priorité du premier processus de la liste par défaut. Par exemple, j'ai passé un PID, puis top m'a demandé la nouvelle valeur nice.
Renice PID 2665 to value
Fournissez simplement une valeur et appuyez sur Entrée, et vous verrez que la belle valeur du processus en question sera modifiée.
Q5. Comment modifier le taux de rafraîchissement de la commande supérieure ?
Par défaut, top actualise la sortie toutes les 3 secondes, mais vous pouvez modifier cela en appuyant sur 'd'. La commande vous demandera d'entrer la nouvelle valeur de délai :
Change delay from 3.0 to
Entrez simplement la valeur et appuyez sur Entrée. C'est tout.
Q6. Comment limiter la sortie de la commande supérieure à un utilisateur ?
Par défaut, la commande top affiche tous les processus. Cependant, vous pouvez limiter la sortie à un utilisateur particulier en appuyant sur 'u'.
Which user (blank for all)
Entrez simplement le nom d'utilisateur dans la ligne ci-dessus et appuyez sur Entrée, et vous verrez que la sortie ne contiendra que les processus appartenant à l'utilisateur dont vous avez entré le nom.
Par exemple, j'ai entré "root", et voici le résultat :
Q7. Comment faire en sorte que la commande supérieure soit complète avec les arguments ?
Cela peut être fait en appuyant sur 'c'. Voici un exemple :
Ainsi, vous pouvez voir le chemin de commande complet ainsi que les arguments de ligne de commande dans la sortie maintenant.
Q8. Comment obtenir de l'aide avec les commandes supérieures interactives ?
Pour obtenir de l'aide sur les commandes supérieures interactives, appuyez sur « h ». Dans la sortie, vous verrez les commandes disponibles et ce qu'elles font. Par exemple, voici ce qui s'est affiché sur mon système lorsque j'ai appuyé sur "h".
Conclusion
Nous venons de gratter la surface ici. La commande top fournit beaucoup plus de fonctionnalités. Une fois que vous avez compris tout ce dont nous avons parlé dans cet article et que vous avez fini de vous entraîner, rendez-vous sur la page de manuel en haut pour en savoir plus.