GNU/Linux >> Tutoriels Linux >  >> Linux

Conseils pour utiliser la commande top sous Linux

Essayer de découvrir ce qui s'exécute sur votre machine - et quel processus utilise toute votre mémoire et rend les choses slllooowwww - est une tâche bien remplie par l'utilitaire top .

top est un programme extrêmement utile qui agit de manière similaire au Gestionnaire des tâches de Windows ou au Moniteur d'activité de MacOS. Exécution de top sur votre machine *nix vous montrera une vue en direct et en cours d'exécution du processus en cours d'exécution sur votre système.

$ top

Selon la version de top vous courez, vous obtiendrez quelque chose qui ressemble à ceci :

top - 08:31:32 up 1 day,  4:09,  0 users,  load average: 0.20, 0.12, 0.10
Tasks:   3 total,   1 running,   2 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.5 us,  0.3 sy,  0.0 ni, 99.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   4042284 total,  2523744 used,  1518540 free,   263776 buffers
KiB Swap:  1048572 total,        0 used,  1048572 free.  1804264 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0   21964   3632   3124 S   0.0  0.1   0:00.23 bash
  193 root      20   0  123520  29636   8640 S   0.0  0.7   0:00.58 flask
  195 root      20   0   23608   2724   2400 R   0.0  0.1   0:00.21 top

Votre version de top peut sembler différent de celui-ci, en particulier dans les colonnes affichées.

Comment lire la sortie

Vous pouvez dire ce que vous exécutez en fonction de la sortie, mais essayer d'interpréter les résultats peut être légèrement déroutant.

Les premières lignes contiennent un tas de statistiques (les détails) suivies d'un tableau avec une liste de résultats (la liste). Commençons par ce dernier.

La liste

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Ce sont les processus qui s'exécutent sur le système. Par défaut, ils sont classés par utilisation du processeur dans l'ordre décroissant. Cela signifie que les éléments en haut de la liste utilisent plus de ressources CPU et entraînent plus de charge sur votre système. Ce sont littéralement les processus "top" en termes d'utilisation des ressources. Vous devez admettre que c'est un nom intelligent.

La COMMAND la colonne à l'extrême droite indique le nom du processus (la commande que vous avez exécutée pour les démarrer). Dans cet exemple, ils sont bash (un interpréteur de commandes que nous exécutons top dans), flask (un micro-framework web écrit en Python), et top lui-même.

Les autres colonnes fournissent des informations utiles sur les processus :

  • PID  :l'identifiant du processus , un identifiant unique pour adresser les processus
  • USER :l'utilisateur exécutant le processus
  • PR :la priorité de la tâche
  • NI  :une meilleure représentation de la priorité
  • VIRT :taille de la mémoire virtuelle en KiB (kibibytes)*
  • RES  :taille de la mémoire résidente en KiB* (la "mémoire physique" et un sous-ensemble de VIRT)
  • SHR  :taille de la mémoire partagée en KiB* (la "mémoire partagée" et un sous-ensemble de VIRT)
  • S  :état du processus, généralement I =inactif, R =courant, S =dormir, Z =zombie, T ou t =stopped (il existe également d'autres options moins courantes)
  • %CPU  :Pourcentage d'utilisation du processeur depuis la dernière mise à jour de l'écran
  • %MEM :pourcentage de RES utilisation de la mémoire depuis la dernière mise à jour de l'écran
  • TIME+ :temps CPU total utilisé depuis le démarrage du processus
  • COMMAND :la commande, comme décrit ci-dessus

*Savoir exactement ce que le VIRT , RES , et SHR les valeurs représentent ne vraiment important dans les opérations quotidiennes. La chose importante à savoir est que le processus avec le plus de VIRT est le processus utilisant le plus de mémoire. Si vous êtes dans le top parce que vous déboguez pourquoi votre ordinateur a l'impression d'être dans une mare de mélasse, le processus avec le plus grand VIRT le numéro est le coupable. Si vous voulez savoir exactement ce que signifient la mémoire "partagée" et "physique", consultez "Types de mémoire Linux" dans le manuel principal.

Et, oui, je voulais dire kibi octets, pas kilo octets. La valeur 1 024 que vous appelez normalement un kilo-octet est en fait un kibioctet. Le kilo grec ("χίλιοι") signifie mille et signifie 1 000 de quelque chose (par exemple, un kilomètre équivaut à mille mètres, un kilogramme à mille grammes). Kibi est un portemanteau de kilo et octet , et cela signifie 1 024 octets (ou 2). Mais, parce que les mots sont difficiles à dire, beaucoup de gens disent kilobyte quand ils signifient 1 024 octets. Tout cela signifie est top essaie d'utiliser les termes appropriés ici, alors allez-y. #plusvoussavez ?.

Une note sur les mises à jour de l'écran :

Les mises à jour d'écran en direct sont l'une des choses objectivement vraiment cool Les programmes Linux peuvent le faire. Cela signifie qu'ils peuvent mettre à jour leur propre affichage en temps réel, afin qu'ils apparaissent animés. Même s'ils utilisent du texte. Trop cool! Dans notre cas, le temps entre les mises à jour est important, car certaines de nos statistiques (%CPU et %MEM ) sont basés sur la valeur depuis la dernière mise à jour de l'écran.

Et comme nous exécutons une application persistante, nous pouvons appuyer sur des touches de commande pour apporter des modifications en direct aux paramètres ou aux configurations (au lieu, par exemple, de fermer l'application et de l'exécuter à nouveau avec un indicateur de ligne de commande différent).

Taper h appelle l'écran "aide", qui affiche également le délai par défaut (le temps entre les mises à jour de l'écran). Par défaut, cette valeur est (environ) trois secondes, mais vous pouvez la modifier en tapant d (vraisemblablement pour "delay") ou s (probablement pour "écran" ou "secondes").

Les détails

Au-dessus de la liste des processus, il y a tout un tas d'autres informations utiles. Certains de ces détails peuvent sembler étranges et déroutants, mais une fois que vous aurez pris le temps de parcourir chacun d'eux, vous verrez qu'il s'agit de statistiques très utiles à consulter en un clin d'œil.

La première ligne contient des informations générales sur le système

  • top  :nous exécutons top ! Salut top !
  • XX:YY:XX :l'heure, mise à jour à chaque mise à jour de l'écran
  • up (puis X day, YY:ZZ ) :la disponibilité du système ou le temps qui s'est écoulé depuis la mise en marche du système
  • load average (puis trois chiffres) :la charge du système au cours des dernières 1, 5 et 15 minutes, respectivement

La deuxième ligne (Tasks ) affiche des informations sur les tâches en cours d'exécution et est assez explicite. Il affiche le nombre total de processus et le nombre de processus en cours d'exécution, en veille, arrêtés et zombies. C'est littéralement une somme de S (indiquer ) colonne décrite ci-dessus.

La troisième ligne (%Cpu(s) ) affiche l'utilisation du processeur séparée par types. Les données sont les valeurs entre les rafraîchissements d'écran. Les valeurs sont :

  • us :processus utilisateur
  • sy :processus système
  • ni :processus utilisateur agréables
  • id :le temps d'inactivité du CPU; un temps d'inactivité élevé signifie qu'il ne se passe pas grand-chose autrement
  • wa  :temps d'attente ou temps passé à attendre la fin des E/S
  • hi :temps passé à attendre les interruptions matérielles
  • si :temps passé à attendre les interruptions logicielles
  • st :"temps volé à cette VM par l'hyperviseur"

Vous pouvez réduire les Tasks et %Cpu(s) lignes en tapant t (pour "basculer").

Le quatrième (KiB Mem ) et la cinquième ligne (KiB Swap ) fournissent des informations pour la mémoire et le swap. Ces valeurs sont :

  • total
  • used
  • free

Mais aussi :

  • mémoire buffers
  • échanger la cached Mem

Par défaut, ils sont répertoriés en KiB, mais en appuyant sur E (pour "étendre la mise à l'échelle de la mémoire") parcourt différentes valeurs :kibioctets, mébioctets, gibioctets, tébioctets, pébioctets et exbioctets. (C'est-à-dire des kilo-octets, des mégaoctets, des gigaoctets, des téraoctets, des pétaoctets et des exaoctets, mais leurs "vrais noms".)

Le top le manuel de l'utilisateur affiche encore plus d'informations sur les drapeaux et les configurations utiles. Pour trouver le manuel sur votre système, vous pouvez exécuter man top . Il existe différents sites Web qui affichent un rendu HTML du manuel, mais notez que ceux-ci peuvent être pour une version différente de top .

Deux meilleures alternatives

Vous n'êtes pas toujours obligé d'utiliser top pour comprendre ce qui se passe. Selon votre situation, d'autres outils peuvent vous aider à diagnostiquer les problèmes, en particulier lorsque vous souhaitez une interface plus graphique ou spécialisée.

htop

htop ressemble beaucoup à top , mais cela apporte quelque chose d'extrêmement utile au tableau :une représentation graphique de l'utilisation du processeur et de la mémoire.

Voici comment l'environnement que nous avons examiné en top regarde dans htop . L'affichage est beaucoup plus simple, mais toujours riche en fonctionnalités.

Le nombre de tâches, la charge, la disponibilité et la liste des processus sont toujours là, mais nous obtenons une vue astucieuse, colorisée et animée de l'utilisation du processeur par cœur et un graphique d'utilisation de la mémoire.

Voici ce que signifient les différentes couleurs (vous pouvez également obtenir cette information en appuyant sur h pour "aide").

Priorités ou types de tâches du processeur :

  • bleu :faible priorité
  • vert :priorité normale
  • rouge :tâches du noyau
  • bleu :tâches virtualisées
  • la valeur à la fin de la barre est le pourcentage de CPU utilisé

Mémoire :

  • vert :mémoire utilisée
  • bleu :mémoire tamponnée
  • jaune :mémoire cache
  • les valeurs à la fin de la barre indiquent la mémoire utilisée et totale

Si les couleurs ne vous sont pas utiles, vous pouvez exécuter htop -C pour les désactiver ; à la place htop utilisera des symboles différents pour séparer les types de CPU et de mémoire.

En bas, il y a un affichage utile des touches de fonction actives que vous pouvez utiliser pour faire des choses comme filtrer les résultats ou changer l'ordre de tri. Essayez certaines des commandes pour voir ce qu'elles font. Soyez juste prudent lorsque vous essayez F9 . Cela fera apparaître une liste de signaux qui tueront (c'est-à-dire arrêteront) un processus. Je suggérerais d'explorer ces options en dehors d'un environnement de production.

L'auteur de htop , Hisham Muhammad (et oui, ça s'appelle htop après Hisham) a présenté un exposé éclair sur htop au FOSDEM 2018 en février. Il a expliqué comment htop a non seulement des graphismes soignés, mais présente également des informations statistiques plus modernes sur les processus que les anciens utilitaires de surveillance (comme top ) non.

Vous pouvez en savoir plus sur htop sur la page du manuel ou sur le site Web htop. (Attention :le site Web contient un arrière-plan animé de htop .)

statistiques docker

Si vous travaillez avec Docker, vous pouvez exécuter docker stats pour générer une représentation contextuelle de ce que font vos conteneurs.

Cela peut être plus utile que top car, au lieu de séparer par processus, vous séparez par conteneur. Ceci est particulièrement utile lorsqu'un conteneur est lent, car voir quel conteneur utilise le plus de ressources est plus rapide que d'exécuter top et en essayant de mapper le processus au conteneur.

Les explications ci-dessus des acronymes et des descripteurs en top et htop devrait faciliter la compréhension de celles de docker stats . Cependant, la documentation des statistiques de docker fournit des descriptions utiles de chaque colonne.


Linux
  1. Conseils Linux pour utiliser cron pour planifier des tâches

  2. 7 astuces pratiques pour utiliser la commande Linux wget

  3. Un guide du terminal Linux pour les débutants

  4. 8 conseils pour la ligne de commande Linux

  5. Apprivoiser la commande tar :conseils pour gérer les sauvegardes sous Linux

Astuces de formatage pour la commande Linux date

La commande supérieure de Linux

Tutoriel sur l'utilisation de la commande Timeout sous Linux

Tutoriel sur l'utilisation de la dernière commande dans le terminal Linux

Un guide pratique pour la commande chroot sous Linux

Commande supérieure de Linux