Outils pour utilisateurs

Outils du site


issue104:tutoriel4

Many programs are available to help in identifying the reasons why a computer is running slowly. Top goes a step further and enables the user to intervene in running processes. What is a process A process is an instance of one or more connected tasks or threads which are executed by the computer. Some of them are independent, others are connected with each other. They use hardware like the processor (CPU), memory, screen, etc. The Linux kernel shares the available hardware with the running processes. With the help of control groups (cgroups), we can arrange single processes into groups, and allocate system resources to them based on the priority of the group. This is the work of the scheduler, which creates a queue that handles the processes based on their priorities. To identify, control and manipulate processes, the operating system assigns a PID (Process ID) to each of them. Usually the PID's are assigned in ascending order and remain unchanged as long the system is running.

Beaucoup de programmes existent pour aider à identifier les raisons pour lesquelles un ordinateur tourne lentement ! Top va un pas plus loin et permet à l'utilisateur d'intervenir dans les processus en cours.

Qu'est-ce qu'un processus ?

Un processus est une instance d'une ou plusieurs taches connectées, ou « threads », qui sont exécutées par l'ordinateur. Certaines d'entre elles sont indépendantes, d'autres sont inter-connectées. Elles utilisent du matériel tel que le processeur (CPU), la mémoire, l'écran, etc. Le noyau Linux partage le matériel disponible entre les processus actifs.

Avec l'aide de groupes de contrôle (cgroups), nous pouvons organiser des processus simples en groupes et leur allouer des ressources système, en fonction de la priorité du groupe. Ceci est le travail de l'ordonnanceur, qui crée une queue qui traite les processus suivant leurs priorités.

Pour identifier, contrôler et manipuler les processus, le système d'exploitation assigne un PID (Process ID - Identifiant de processus) à chacun d'eux. Habituellement, les PID sont attribués dans l'ordre croissant et restent inchangés tant que le système tourne.

The program ‘top’ To start top, we have to open a terminal and simply type in “top”. Now the screens fills with a lot of data. To make some sense of it, let's take a look at the first row (in the image above): top - 20:14:42 up 57 min: gives the current time and how long the computer has been in use. 1 user: number of users logged in. load average: 0.97, 1.11, 1.08: shows the load average (workload) of the CPU during the most recent 1.5 and 15 minutes. For better accuracy, divide it by the number of CPU cores so that for example 1.08 divided by 2 cores means that the work for each core is 0.54. If this number > 1, then a queue exists, and the scheduler must be invoked to allocate computing time. Tasks: 140 total, 1 running, 138 sleeping, 0 stopped, 1 Zombie: The second row displays the number of processes currently running, sleeping and stopped. The Zombie is a so-called child process, once started by a parent process, but not ended when the parent process was stopped. It's harmless, but if many are present, they may consume some memory and PID's.

Le programme « Top »

Pour démarrer top, nous devons ouvrir un terminal et taper simplement « top ». Maintenant, l'écran est remplis avec des tas de données. Pour les rendre compréhensibles, regardons la première ligne (dans l'image ci-dessus) :

top - 20:14:42 up 57 min : donne l'horodatage actuel et la durée depuis la mise en service de l'ordinateur.

1 user (utilisateur) : nombre d'utilisateurs connectés.

load average (charge moyenne) : 0.97, 1.11, 1.08 : montre la charge moyenne du CPU pendant les dernières 1,5 et 15 minutes. Pour une meilleure précision, divisez-le par le nombre de cœurs du CPU ; ainsi, dans notre exemple, 1,08 divisé par 2 cœurs signifie que le travail de chaque cœur est de 0,58. Si le chiffre est > 1, alors une queue existe et l'ordonnanceur doit être invoqué pour allouer le temps de calcul.

Tasks (tâches) : 140 total, 1 running (en cours), 138 sleeping (dormante), 0 stopped (arrêtée), 1 Zombie (défunte) : la deuxième ligne affiche le nombre de processus actuellement en cours, dormants ou arrêtés. Le nom de « zombie » est donné à un processus enfant, démarré auparavant par un processus parent, mais qui n'a pas été terminé quand le processus parent s'est arrêté. C'est sans danger, mais si beaucoup sont présents, ils peuvent occuper de la mémoire et des PID.

The third row shows the CPU workload for different clients: “us” the user “sy” the kernel “ni” user jobs with low priority “id” the idle Mode (if it’s high, then the workload is low, and vice versa) “wa” the percentage of jobs waiting for computing time Interrupts displayed in “hi” - hardware interrupts and “si” software interrupts “st” (steal time) shows the amount of CPU power that a virtual machine is using. The fourth and the fifth rows show the usage of the memory and swap - the amount in use and the amount that’s still free.

La troisième ligne montre la charge des CPU pour différents clients :

« us » l'utilisateur ; « sy » le noyau ; « ni » des travaux utilisateurs à faible priorité ; « id » le mode Idle (inactif) (s'il est haut, la charge est faible et vice-versa) ; « wa » le pourcentage de travaux attendant du temps de calcul. Les interruptions sont affichées dans « hi », interruptions matériel et« si », interruptions logiciel « st » (steal time - temps volé) montre la quantité de puissance CPU utilisée par une machine virtuelle.

Les quatrième et cinquième lignes montrent l'usage de la mémoire et du swap, la quantité utilisé et la quantité encore libre.

Below the system information we find the process list. It is structured in 12 parts: • PID the process ID • USER the user who has started the task • PR process priority • NI the nice value • VIRT virtual memory • RES physical memory • SHR shared memory • S status • %CPU percentage of CPU power taken by the the process • %MEM percentage of memory used by the process • TIME+ time since the process started • COMMAND the command used to start the process There are some keyboard shortcuts to personalize the information displayed by top: • t hides/shows the second and third row in the info section (tasks, CPU usage, etc). • m hides or displays the fourth and the fifth row (memory, swap, etc). • A sorts the process list in order of resource usage. • f the user can decide what task details should be displayed by top. • o the user may configure the order of the list by his own needs.

Sous les informations système, nous trouvons la liste des processus. Elle est construite en 12 parties :

• PID Identifiant du processus ; • USER utilisateur qui a démarré la tache ; • PR priorité du processus ; • NI valeur nice ; • VIRT mémoire virtuelle ; • RES mémoire physique ; • SHR mémoire partagée ; • S statut ; • %CPU pourcentage de puissance CPU prise par le processus ; • %MEM pourcentage de mémoire utilisée par le processus ; • TIME+ temps écoulé depuis le démarrage du processus ; • COMMAND commande utilisée pour démarrer le processus.

Il y a quelques raccourcis clavier pour personnaliser l'information affichée par top :

• t cache/affiche les seconde et troisième lignes de la section info (taches, usage CPU, etc.) ; • m cache ou affiche les quatrième et cinquième lignes (mémoire, swap, etc.) ; • A trie la liste des processus par ordre d'usage des ressources ; • f l'utilisateur peut décider quels détails des tâches devraient être affichés par top ; • o l'utilisateur peut configurer l'ordre de la liste suivant ses propres besoins.

Working with top To manipulate a process, top offers two ways: • To stop a program that’s no longer needed, or that has crashed, the k (kill) command is very useful. After we give the k command, top asks for the PID of the program we want to stop. After typing in the PID, top asks us to confirm the input of the stop signal. • To manipulate the priority of a task, we use the command r (renice). With it, it's possible to reduce or to raise the priority of a process. The ‘r’ command may be unknown to many users, so these details may help: If a system is running slowly, top may help to analyze the reason. Mostly it will be sufficient to stop one or more processes to fix the problem. If this is not possible – because none of the running tasks can be terminated – their priority can be reduced and the priority of more important process can be raised. A higher priority means more computing time from the processor, and vice versa.

Utiliser top

Pour manipuler un processus, top offre deux solutions :

• Pour arrêter un programme dont on n'a plus besoin, ou qui a planté, la commande k (kill - tuer) est très utile. Une fois la commande k envoyée, top nous demande le PID du programme que nous voulons arrêter. Après saisie du PID, top nous demande de confirmer l'envoi du signal d'arrêt. • Pour modifier la priorité d'une tâche, nous utilisons la commande r (renice - renouveler nice). Elle rend possible la réduction et l'augmentation de la priorité d'un processus.

Puisque la commande « r » est peut-être inconnue de beaucoup d'utilisateurs, en voici quelques détails :

Si un système tourne lentement, top peut aider à analyser la raison. En général, il suffit d'arrêter un ou plusieurs processus pour résoudre le problème. Si ce n'est pas possible, parce qu'aucune des tâches actives ne peut être terminée, leur priorité peut être réduite et la priorité des processus les plus importants peut être augmentée. Une plus haute priorité signifie plus de temps de calcul du processeur, et vice-versa.

Linux, based on UNIX, works with the UNIX system to determine priorities. The highest level is -20, the lowest 19. That means the more important a process is the lower is the assigned number. This number is called the ‘Nice Value’ and is displayed, as mentioned before, in the column NI in the process list. To raise a ‘nice value’, top must be started as root. To renice an owner (user) process, it is possible to do this without root power – but only to raise the priority, not to reduce it. For experimentation, it’s better to start ‘top’ in the user mode, and change the priority of only user tasks. Before changing any other tasks, please investigate what effects this will have on your system, especially for root tasks… avoid making experimental or unjustified changes. Conclusion Top is easy to understand, so everybody can use it. It has not only display functions, it also enables the user to intervene in processes.

Basé sur UNIX, Linux travaille avec le système UNIX pour déterminer les priorités. Le plus haut niveau est -20, le plus bas 19. Ceci signifie que, plus le processus est important, plus le nombre attribué est bas. Ce nombre est appelé la « Valeur nice » et est affichée, comme indiqué plus haut, dans la colonne NI de la liste des processus.

Pour augmenter la « valeur nice », top doit démarrer comme root. Il est possible de renouveler le nice d'un processus du propriétaire (l'utilisateur) sans être root, mais seulement pour augmenter la priorité, pas pour la réduire. Pour des essais, il est préférable de démarrer top comme simple utilisateur et de ne changer les priorités que sur des tâches de l'utilisateur. Avant de changer toute autre tâche, analysez, s'il vous plaît, les effets que cela aura sur le système, surtout pour les tâches root… Évitez des modifications expérimentales ou injustifiées.

Conclusion

Top est facile à comprendre, de sorte que chacun peut l'utiliser. Il n'a pas que des fonctions d'affichage ; il peut aussi aider l'utilisateur à intervenir dans les processus.

BIO : Jürgen is the former author of the now defunct YALM (Yet Another Linux Magazine) and a Linux user since 2007.

Bio : Jurgen est l'ancien auteur du maintenant défunt YALM (Yet Another Linux Magazine - Encore un autre magazine Linux) et un utilisateur de Linux depuis 2007.

issue104/tutoriel4.txt · Dernière modification : 2016/01/17 17:24 de andre_domenech