GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel sur les commandes Linux nice et renice (7 exemples)

La puissance de la ligne de commande Linux peut être évaluée à partir du fait que vous pouvez même facilement modifier la priorité de planification des processus à l'aide d'outils de ligne de commande. Oui, c'est possible, et dans ce tutoriel, nous verrons comment faire cela en utilisant nice et renice utilitaires.

Mais avant cela, il convient de mentionner que tous les exemples de cet article ont été testés sur un système Ubuntu 16.04LTS.

Commandes Linux nice et renice

Alors que la commande nice vous permet d'exécuter un programme/processus avec une priorité de planification modifiée, la commande renice vous permet de modifier la priorité de planification d'un processus déjà en cours d'exécution. Voici la syntaxe générique de ces deux commandes :

nice [OPTION] [COMMAND [ARG]...]
renice [-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

Voici ce que leurs pages de manuel respectives ont à dire à leur sujet :

Nice: 
Run COMMAND with an adjusted niceness, which affects process schedul?
ing. With no COMMAND, print the current niceness. Niceness values
range from -20 (most favorable to the process) to 19 (least favorable
to the process).
Renice:
Renice alters the scheduling priority of one or more running processes.
The following who parameters are interpreted as process ID's, process
group ID's, or user names. Renice'ing a process group causes all pro?
cesses in the process group to have their scheduling priority altered.
Renice'ing a user causes all processes owned by the user to have their
scheduling priority altered. By default, the processes to be affected
are specified by their process ID's.

Voici quelques exemples sous forme de questions-réponses qui vous donneront une meilleure idée du fonctionnement de ces outils.

Q1. Comment vérifier la gentillesse des programmes/processus en cours d'exécution ?

Oui, il faut d'abord savoir comment vérifier la priorité de planification existante avant de la modifier. S'il s'agit du processus que vous êtes sur le point d'exécuter, sachez que la priorité de planification par défaut est toujours 0.

Par exemple, nous avons exécuté le processus suivant :

./test-new

Et confirmé la priorité à l'aide de la commande suivante :

ps -lu himanshu | grep test-new

Ici, 'himanshu' est l'utilisateur qui possède le processus 'test-new'. Voici la sortie produite par la commande ci-dessus :

0 S  1000  6306  6125  0  80   0 -   508 hrtime pts/18   00:00:00 test-new

La valeur dans la 8e colonne est la valeur agréable, et comme vous pouvez le voir, c'est zéro.

Q2. Comment fonctionne la commande nice ?

Alors maintenant, pour en venir au fait, comment fonctionne la commande nice ? C'est simple - utilisez simplement l'outil de la manière suivante :

nice -PRIORITY COMMAND

Par exemple, si je veux que la priorité de planification soit 10, voici comment je peux faire :

nice -10 ./test-new

Voici la sortie de la commande ps dans ce cas, confirmant que la priorité a été changée en 10.

0 S  1000  6694  6125  0  90  10 -   508 hrtime pts/18   00:00:00 test-new

Q3. Comment faire du bon travail avec des valeurs négatives ?

Comme déjà mentionné au début, les valeurs de gentillesse vont de -20 à 19, la première étant la plus favorable, la seconde étant la moins bonne. Si vous souhaitez associer une valeur nice négative au processus, vous devrez utiliser un double trait d'union.

Par exemple, 

sudo nice --10 ./test-new

Veuillez noter que vous devez disposer des privilèges root pour associer une valeur nice négative à un processus. Et précisément pour cette raison, votre commande ps pour confirmer la nouvelle gentillesse doit contenir 'root' au lieu de l'autre nom d'utilisateur.

$ ps -lu root | grep test-new

Voici le résultat produit par cette commande dans notre cas :

4 S 0 7054 7053 0 70 -10 - 508 - pts/18 00:00:00 test-new

Vous pouvez donc voir que le processus s'exécute maintenant avec une belle valeur de -10.

Q4. Comment ajouter une valeur entière définie à la gentillesse ?

Vous pouvez ajuster la valeur agréable à l'aide de l'option de ligne de commande -n, qui ajoute une valeur entière définie à la gentillesse. Par défaut, cette valeur définie est 10, bien que vous puissiez également transmettre une valeur différente.

-n, --adjustment=N

Par exemple :

nice --adjustment=5 ./test-new

Et voici la sortie, la commande ps produite dans ce cas :

0 S 1000 7314 6125 0 85 5 - 508 hrtime pts/18 00:00:00 test-new

Vous pouvez donc voir qu'une priorité de 5 a été définie.

Q5. Comment changer la priorité des processus en cours ?

Alors que la commande nice est utilisée lors du lancement de programmes, la commande renice vous permet de modifier la priorité d'un processus en cours d'exécution. Par exemple, voici comment nous avons changé la priorité du processus "test-new" déjà en cours d'exécution de 5 à 15.

renice -n 15 -p 7314

L'argument -p est pour l'ID de processus. Voici la sortie produite par la commande ci-dessus :

7314 (process ID) old priority 5, new priority 15

Et la belle valeur a bien été changée en 15.

Q6. Comment changer la priorité de tous les processus appartenant à un groupe ?

Vous pouvez utiliser l'option -g pour cela. Par exemple :

renice -n 20 -g howtoforge

La commande ci-dessus changera la priorité de tous les processus appartenant au groupe 'howtoforge'.

Q7. Comment changer la priorité de tous les processus appartenant à un utilisateur ?

Pour modifier la priorité de tous les programmes associés à un utilisateur, utilisez l'option -u. Par exemple :

renice -n 5 -u himanshu

Bien sûr, un utilisateur de ligne de commande Linux normal ne se retrouvera généralement pas dans des situations où ces outils sont nécessaires, mais il est toujours bon de connaître les outils de ligne de commande importants, et nice et renice en font partie. La bonne chose est que la courbe d'apprentissage qui leur est associée n'est pas raide du tout. Nous avons déjà discuté de la majorité des options ici. Pour plus d'informations sur ces utilitaires, rendez-vous sur leurs pages de manuel - ici et ici.


Linux
  1. Commande Linux Cat :utilisation et exemples

  2. 7 Exemples de commandes Linux df

  3. 8 Exemples de commandes Linux TR

  4. Exemples de commandes mkdir et rmdir sous Linux

  5. Exemples de commandes sa sous Linux

Tutoriel de commande Linux nm pour les débutants (10 exemples)

Tutoriel de commande Linux OD pour les débutants (6 exemples)

Tutoriel de commande Linux w pour débutants (5 exemples)

Tutoriel de commande Linux ss pour les débutants (8 exemples)

Options de commande et exemples de commande Tee sous Linux

Exemples de commandes id sous Linux