La commande top sous Linux affiche les processus en cours d'exécution sur le système. L'un des outils les plus importants pour un administrateur système. Il est largement utilisé pour surveiller la charge sur un serveur. Dans cet article, nous explorons la commande top en détail. La commande top est une commande interactive. De nombreuses commandes sont disponibles lorsque top est en cours d'exécution. Nous allons également explorer ces commandes.
1. Commande supérieure par défaut
Tout d'abord, comprenons ce que dit la sortie. La commande Top affiche de nombreuses informations sur le système en cours d'exécution. Mais nous devons comprendre la signification des différentes sections de cette sortie. Pour voir le processus en cours d'exécution, sur le terminal, exécutez la commande ci-dessous
# top
Exécutée par défaut, la commande top affiche une sortie comme celle-ci :
Il y a des informations dans différentes colonnes et lignes horizontales montrant un résumé sur différents paramètres système, suivis des processus et de leurs attributs dans les colonnes.
a) Champs/Colonnes
Par défaut, top affiche certains attributs associés aux processus et le type d'information est représenté en colonne. Donc, pour comprendre le fonctionnement de la commande top, nous devons connaître le rôle de chaque colonne afin de savoir où se trouve l'information dont nous devrions avoir besoin
PID : L'ID de processus représenté par une valeur unique qui identifie de manière unique un processus.
UTILISATEUR : Nom d'utilisateur effectif du propriétaire des processus. Cela permet d'identifier exactement les processus lancés par un utilisateur particulier
RP : c'est la priorité réelle du processus, telle que vue par le noyau Linux, la priorité d'ordonnancement du processus. Pour les processus normaux, la priorité du noyau est simplement +20 de la belle valeur. Ainsi, un processus avec la valeur de nice neutre de zéro a une priorité de noyau de 20. Pour les processus s'exécutant en temps réel, la valeur du champ est RT
NI : C'est la valeur agréable du processus correspondant à un concept d'espace utilisateur. La bonne plage de valeurs est -20 à +19 où -20 est le plus élevé, 0 par défaut et +19 est le plus bas. Des valeurs inférieures signifient une priorité plus élevée. La relation entre la valeur agréable et la priorité est PR = 20 + NI
VIRT : C'est la quantité de mémoire virtuelle utilisée par le processus. Il représente la quantité de mémoire à laquelle le programme peut accéder à l'instant présent ; il représente la taille virtuelle d'un processus, qui est la somme de la mémoire qu'il utilise réellement,
RES : C'est la taille de la mémoire résidente. La mémoire résidente est la quantité de mémoire physique non échangée qu'une tâche utilise. Il représente la taille résidente, qui est une représentation précise de la quantité de mémoire physique réelle consommée par un processus. (Cela correspond également directement à la colonne %MEM.) Ce sera pratiquement toujours inférieur à la taille VIRT, car la plupart des programmes dépendent de la bibliothèque C.
SHR : SHR est la mémoire partagée utilisée par le processus et indique quelle partie de la taille VIRT est réellement partageable (mémoire ou bibliothèques). Dans le cas des bibliothèques, cela ne signifie pas nécessairement que toute la bibliothèque est résidente.
S : Il s'agit de l'état du processus. Les processus sont définis par un état de fonctionnement. Il peut prendre l'une des valeurs suivantes :
- D - Sommeil ininterrompu :un état de veille où le processus attend que quelque chose se produise. Il ne peut pas être interrompu par un signal; il s'affiche généralement lorsque le processus attend le disque.
- R - en cours d'exécution :le processus est prêt à s'exécuter, et s'exécutera à chaque fois que viendra son tour d'utiliser le CPU
- S - dormir :un état de veille où le processus attend que quelque chose se produise. Il peut être interrompu par un signal
- T - tracé ou arrêté :c'est un état où le processus est arrêté, généralement via
SIGSTOP
ouSIGTSTP
. Il peut également être arrêté par un débogueur (ptrace
). Lorsque vous voyez cet état, c'est généralement parce que vous avez utilisé Ctrl-Z pour mettre une commande en arrière-plan. - Z - zombie :est un état où le processus est mort (il a terminé son exécution), et la seule chose qui reste est la structure le décrivant sur le noyau. Il attend que son processus parent récupère son code de sortie, et pas beaucoup plus. Une fois que son processus parent en aura terminé avec lui, il disparaîtra.
%CPU : Il s'agit du pourcentage de temps CPU utilisé par la tâche depuis la dernière mise à jour. Le pourcentage de CPU utilisé par le processus. Par défaut, top
affiche cela sous forme de pourcentage d'un seul processeur. Sur les systèmes multicœurs, vous pouvez avoir des pourcentages supérieurs à 100 %.
%MEM : Il représente le pourcentage de mémoire physique disponible utilisé par le processus. Il peut être considéré comme la part de la mémoire disponible totale utilisée par ce processus.
HEURE+ : Le temps CPU total utilisé par la tâche depuis son démarrage, avec une précision allant jusqu'au centième de seconde.
COMMANDE : La commande qui a été utilisée pour démarrer le processus.
Il existe de nombreuses autres sorties qui ne sont pas affichées par défaut et qui peuvent afficher des informations sur les défauts de page, le groupe effectif et l'ID de groupe du processus, et bien d'autres.
b) Moyennes de disponibilité et de charge
Lorsque vous êtes en "top mode", à la première ligne du résultat de la commande top, une sortie similaire à la commande uptime est affichée.
Les champs affichent les informations ci-dessous :
* l'heure actuelle du système
* la durée de fonctionnement de votre système
* le nombre d'utilisateurs connectés au système
* la charge moyenne de 5, 10 et 15 minutes respectivement.
Cet affichage de disponibilité peut être basculé avec l et peut masquer les informations sur la charge moyenne.
c) Tâches
La deuxième ligne affiche le résumé des tâches ou des processus. Les processus peuvent être dans différents états comme nous l'avons vu plus haut pour la colonne 'S'. Il montre les différents processus et leurs états
d) États du processeur
La troisième ligne affiche les différentes statistiques du processeur.
La signification des différents temps CPU est :
- nous, utilisateur :cela nous montre que le processeur passe 1,8% de son temps à exécuter des processus de l'espace utilisateur. Un programme de l'espace utilisateur est un processus qui n'appartient pas au noyau.
- sy, système :c'est le temps passé par le processeur à exécuter le noyau.
- ni, gentil : montre combien de temps le processeur a passé à exécuter les processus de l'espace utilisateur qui ont été modifiés. Sur un système où aucun processus n'a été niché, le nombre sera 0.
- identifiant, inactif :cela nous indique que le processeur était inactif un peu plus de 97 % du temps au cours de la dernière période d'échantillonnage.
- wa , attente IO :il est inactif en attendant la fin d'une opération d'E/S
- salut :combien de temps le processeur a passé à traiter les interruptions matérielles
- si :combien de temps le processeur a passé à traiter les interruptions logicielles
- er :Ce dernier chiffre ne s'applique qu'aux machines virtuelles. Lorsque Linux s'exécute en tant que machine virtuelle sur un hyperviseur, le
st
(abréviation de volé) montre combien de temps le CPU virtuel a attendu que l'hyperviseur intervienne sur un autre CPU virtuel exécuté sur une autre machine virtuelle
Cela peut être basculé avec t
clé qui détermine comment les tâches sont affichées et peut masquer les informations sur la tâche et le processeur.
e) Utilisation de la mémoire
Cette partie se compose de deux lignes qui peuvent exprimer des valeurs en kibioctets (Kio), mébioctets (MiB) ou gibioctets (Gio) selon la quantité de mémoire physique actuellement installée.
- La ligne 1 reflète la mémoire physique , classé comme :total, utilisé, libre, tampons
- La ligne 2 reflète la mémoire virtuelle , classé comme :total, utilisé, gratuit, mis en cache
- Mémoire physique est votre RAM, des pièces matérielles physiques qui fournissent de la mémoire à accès aléatoire
- Échanger est la mémoire virtuelle qui peut être un fichier ou une partition sur votre disque dur qui est essentiellement utilisée comme RAM supplémentaire. Ce n'est pas une puce RAM séparée cependant, elle réside sur votre disque dur.
La mémoire peut être basculée avec m
clé qui détermine comment l'utilisation de la mémoire est affichée et peut masquer les informations de la mémoire.
2. Afficher le menu d'aide interactif
Il dispose d'un mode interactif puissant qui est actif par défaut au démarrage de Top. Une variété de commandes peuvent être utilisées sous la forme de simples pressions de touches alphabétiques pour manipuler ce qui est vu. Ici, nous explorons ces commandes plus en détail.
Tout d'abord, vous pouvez appuyer sur h
ou ?
pour afficher le menu d'aide des commandes interactives ou une liste condensée de commandes. Nous pouvons voir les rôles des différentes clés que nous pouvons utiliser dans l'exécution de la commande supérieure.
3. Actualiser manuellement l'affichage
La commande top rafraîchit par défaut les informations affichées après un certain intervalle (3 secondes). Pour actualiser ces informations manuellement, l'utilisateur peut appuyer sur ENTER
ou SPACE
.
4) Basculer en mode d'affichage alternatif
Par défaut, nous avons le mode d'affichage plein écran où le résumé et les données de la tâche sont affichés dans une seule fenêtre. Ainsi, à tout moment, un seul groupe de champs peut être affiché. Il existe également le mode d'affichage alternatif, où il peut y avoir un maximum de quatre fenêtres, chacune affichant un groupe de champs. Ces fenêtres sont nommées Def, Job, Mem et Usr
- Déf : trié par %CPU
- Emploi :trié par PID
- Mémoire :trié par %MEM
- Usr : trié par champ Utilisateur
Le mode d'affichage alternatif peut être entré en utilisant le A
commande de basculement du mode d'affichage. Chacun des 4 groupes de champs a une zone de résumé configurable séparément et sa propre zone de tâches configurable. Une seule de ces 4 fenêtres sera la fenêtre courante. La fenêtre actuelle est affichée dans le coin supérieur gauche.
Vous pouvez basculer entre 4 fenêtres avec a
et w
clés. a
passe au suivant et w
à la fenêtre précédente. Avec g
commande, vous pouvez entrer un nombre pour sélectionner la fenêtre actuelle.
5) Affichage en gras
Certaines informations importantes sont indiquées en caractères gras. B
La commande bascule l'utilisation du gras. Cette commande influencera l'utilisation de la fonctionnalité terminfo en gras et modifiera à la fois la zone de résumé et la zone de tâches de la fenêtre actuelle. Lorsque cette bascule est 'ON ' et top fonctionne en mode monochrome, tout l'affichage apparaîtra sous forme de texte normal. Ainsi, à moins que le x
et/ou y
les bascules utilisent l'inverse pour l'emphase, il n'y aura aucune confirmation visuelle qu'elles sont même activées.
6) Définir l'intervalle de temps d'affichage
d
ou s
les touches modifient le délai entre les rafraîchissements. Demander un nouveau temps de retard, qui devrait être en secondes. Supprimé en mode sécurisé. Quand d
ou s
est enfoncé, vous serez invité à entrer une valeur (en secondes) qui sera définie comme intervalle d'affichage. Si vous entrez 1 ici, top sera actualisé toutes les secondes.
7) Basculer le chargement, la tâche, les informations sur la mémoire
l
, t
et m
les touches basculeront la moyenne de charge, l'état de la tâche/du processeur et les informations sur la mémoire respectivement, comme indiqué dans Temps de disponibilité et moyenne de charge , État du processeur et Utilisation de la mémoire .
8) Gestion des champs pour l'affichage
F
touche permettant de choisir le champ à afficher sur l'écran de sortie. Pour sélectionner un champ à afficher, appuyez sur SPACE
ou d
clé sur le nom. Les champs marqués d'un * sont sélectionnés. Appuyez sur q
ou ESC
pour quitter lorsque vous avez terminé.
<
et >
Le <
La commande déplace le champ trié vers la gauche et >
à droite
9) Tri inversé
Par défaut, le tri se fait par ordre décroissant. En appuyant sur R
doit inverser l'ordre de tri de la colonne actuellement triée, en utilisant cette commande interactive affiche pLes processus consommant le moins de cpu sont affichés en premier.
10) Afficher le chemin de la commande
c
affiche le chemin complet de la commande avec les arguments de la ligne de commande dans la colonne COMMAND.
11) Tâches inactives
i
la touche n'affiche pas les tâches inactives Basculer les tâches inactives. Il affiche toutes les tâches ou uniquement les tâches actives. Lorsque cette bascule est désactivée, les tâches qui n'ont utilisé aucun processeur depuis la dernière mise à jour ne seront pas affichées. Cependant, en raison de la granularité des champs %CPU et TIME+ , certains processus peuvent encore être affichés et semblent n'avoir utilisé aucun processeur.
12) Vue sur la forêt
V
key affichera les processus dans une hiérarchie parent-enfant comme ci-dessous
13) Changer la carte des couleurs
En appuyant sur le Z
La touche amène l'utilisateur à un écran où la couleur d'affichage peut être modifiée pour la commande supérieure. Un écran séparé vous sera présenté. Cet écran peut être utilisé pour changer les couleurs uniquement dans la fenêtre actuelle ou dans les quatre fenêtres avant de revenir à l'affichage supérieur. Lorsque vous émettez le Z
commande interactive, vous disposez de 4 lettres majuscules pour sélectionner une cible pour 8 chiffres pour sélectionner une couleur
L'écran ci-dessous montre une vue de dessus en couleur avec les 4 écrans allumés.
14) Basculer la couleur
z
allume ou éteint l'affichage en couleur. il bascule la fenêtre actuelle entre votre dernier jeu de couleurs utilisé et l'ancienne forme de noir sur blanc ou blanc sur noir. Cette commande modifiera à la fois la zone de résumé et la zone de tâches
15) Modifier la surbrillance pour le champ de tri actuel et la tâche en cours
x
pour Column-Highlight bascule les changements de surbrillance pour le champ de tri actuel. Si vous oubliez quel champ est trié, cette commande peut servir de rappel visuel rapide, à condition que le champ de tri soit affiché. Le champ de tri peut ne pas être visible car la largeur d'écran et/ou le f
sont insuffisants. la commande interactive l'a désactivé
y
pour Row-Highlight bascule les changements de mise en surbrillance pour les tâches en cours d'exécution. L'utilisation de cette disposition fournit des informations importantes sur la santé de votre système. Les seuls coûts seront quelques séquences d'échappement tty supplémentaires
En fonction de vos paramètres d'affichage, vous devrez peut-être rendre la sortie colorée afin de remarquer ces points forts.
16) Afficher les processus d'un utilisateur
u
affiche les processus pour un utilisateur particulier. Vous êtes invité à entrer le nom d'utilisateur. Vide s'affichera pour tous les utilisateurs. Il n'affiche que les processus dont l'ID utilisateur ou le nom d'utilisateur correspond à celui donné, correspond à l'utilisateur effectif
17) Afficher le nombre de tâches affichées
n
ou #
définir le nombre maximum de tâches affichées. Il invite à entrer le nombre de tâches à afficher. Le bailleur de votre numéro et les lignes d'écran disponibles seront utilisés. Lorsqu'elle est utilisée en mode d'affichage alternatif, il s'agit de la commande qui vous donne un contrôle précis sur la taille de chaque affichage de tâche actuellement visible, à l'exception du tout dernier. Cela n'affectera pas la taille de la dernière fenêtre, car tous les affichages de tâches précédents auront déjà été peints.
18) Tuer des tâches
L'une des commandes les plus importantes de top. k
est utilisé pour envoyer des signaux aux tâches (généralement tuer des tâches). Vous serez invité à entrer un PID, puis le signal à envoyer. La saisie d'aucun PID ou d'un nombre négatif sera interprétée comme la valeur par défaut affichée dans l'invite (la première tâche affichée). Une valeur PID de zéro signifie le programme supérieur lui-même. Le signal par défaut, comme indiqué dans l'invite, est SIGTERM. Cependant, vous pouvez envoyer n'importe quel signal, via un numéro ou un nom. Si vous souhaitez abandonner le processus de mise à mort, effectuez l'une des opérations suivantes en fonction de votre progression :à la
- à l'invite pid, saisissez un nombre invalide
- à l'invite du signal, tapez 0 (ou tout signal invalide)
- à n'importe quelle invite, tapez
19) Réviser une tâche
Le r
L'option est utilisée pour changer la priorité du processus. Cette opération est également appelée renicer une tâche pour changer la priorité de planification. Vous serez invité à entrer un PID, puis la valeur à laquelle l'adapter. La saisie d'aucun PID ou d'un nombre négatif sera interprétée comme la valeur par défaut affichée dans l'invite (la première tâche affichée). Une valeur PID de zéro signifie le programme supérieur lui-même. Une valeur nice positive fera perdre la priorité à un processus. Inversement, une valeur nice négative fera qu'un processus sera vu plus favorablement par le noyau.
En règle générale, les utilisateurs ordinaires ne peuvent qu'augmenter la valeur de nice et ne peuvent pas la diminuer. Si vous souhaitez abandonner le processus de renice, effectuez l'une des actions suivantes en fonction de votre progression :
- à l'invite pid, saisissez un nombre invalide
- à la bonne invite, tapez
sans saisie - à n'importe quelle invite, tapez
20) État du processeur séparé
Cette commande affecte la façon dont le t
la partie États du processeur de la commande s'affiche. Lorsque vous voyez %Cpu(s) dans la zone de résumé, le 1
la bascule est activée et toutes les informations sur le processeur sont rassemblées sur une seule ligne. Sinon, chaque CPU est affiché séparément comme :`%Cpu0, %Cpu1, ...' jusqu'à la hauteur d'écran disponible.
21) Résumer l'état du processeur
Ce 2
la commande bascule entre le 1
commande affichage du résumé du processeur (uniquement) ou un affichage de résumé plus les statistiques d'utilisation du processeur pour chaque nœud NUMA.
22) Afficher la commande supérieure en mode batch
Le -b
L'option démarre la commande supérieure en mode batch. Cela peut être utile lorsque vous souhaitez enregistrer la sortie dans un fichier.
# top -b top - 01:05:36 up 4 days, 2:59, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 117 total, 1 running, 116 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.6 us, 0.2 sy, 0.0 ni, 99.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 500096 total, 50244 free, 45732 used, 404120 buff/cache KiB Swap: 0 total, 0 free, 0 used. 414836 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1373 root 20 0 40388 3672 3160 R 6.2 0.7 0:00.02 top 1 root 20 0 38052 5600 3488 S 0.0 1.1 0:23.26 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:09.17 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root 20 0 0 0 0 S 0.0 0.0 0:27.64 rcu_sched 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 10 root rt 0 0 0 0 S 0.0 0.0 0:04.02 watchdog/0
23) Bascule commande/nom de programme
Comme indiqué dans les commandes ci-dessus, le -c
l'option basculera du dernier état mémorisé de l'affichage du nom de la commande/du programme.
24) Définir l'intervalle de délai dans la ligne de commande
-d
définit l'intervalle de délai pour top (en secondes). Par exemple :
$ top -d 1
démarrera la commande supérieure avec un intervalle de retard de 1 seconde.
25) basculement du processus inactif dans la ligne de commande
Cette option définit la commande supérieure avec le dernier i
mémorisé état inversé.
$ top -i
26) Définir le nombre d'itérations dans la ligne de commande
Avec -n
option, vous pouvez définir le nombre d'itérations après lesquelles top se terminera.
$ top -n 3
sortira du haut automatiquement après 3 sorties. Dans l'image ci-dessous, il est sorti automatiquement
27) Surveiller des PID spécifiques en ligne de commande
Vous pouvez spécifier les PID que vous souhaitez surveiller avec -p
option. La valeur PID 0 sera traitée comme l'ID de processus de la commande supérieure elle-même.
$ top -p pid_value
28) Afficher la tâche par nom d'utilisateur ou UID dans la ligne de commande
Le processus d'un utilisateur particulier peut être visualisé avec ces options. Le nom d'utilisateur ou l'UID peut être spécifié dans l'option. Le -p
, -u
et -U
les options sont mutuellement exclusives. Une seule des options peut être utilisée à la fois. Vous obtenez une erreur lorsque vous essayez d'utiliser n'importe quelle combinaison de ces options :
$ top -u franshesco
29) Faire un tri par ... en ligne de commande
Le -o
peut être utilisé avec la commande top pour le filtrage. Il détermine quelles tâches seront affichées dans la fenêtre "actuelle". Par exemple, nous allons trier par %CPU
# top -o %CPU
30) Vérifiez la version de la commande supérieure
Pour vérifier la version de la commande supérieure, nous utilisons l'option -v
# top -v procps-ng version 3.3.10
Conclusion
Nous pouvons maintenant manipuler nos processus avec la commande top. Nous avons ses puissants et ses avantages. Il est possible de l'utiliser en ligne de commande ou en mode interactif. Maintenant, nous pouvons facilement choisir comment l'utiliser pour nos besoins.