Le noyau Linux stocke de nombreuses informations sur les processus, y compris la priorité du processus qui est simplement la priorité de planification attachée à un processus. Les processus avec une priorité plus élevée seront exécutés avant ceux avec une priorité inférieure, tandis que les processus avec la même priorité sont programmés après le suivant, à plusieurs reprises.
L’utilisateur a la possibilité de modifier la priorité d’un processus à l’aide des commandes nice et renice.
Dans ce tutoriel, je vous montre comment utiliser les commandes nice et renice sur Linux avec des exemples.
La commande nice et les priorités de processus dans Linux
Le critères utilisé pour déterminer comment le noyau linux traite un processus est la bonne nice. Chaque processus a valeur nice qui est un entier dans la plage de -19 à 20.
L’astuce ici est que plus la valeur nice est élevée, moins importante est la priorité du processus faces aux autres processus en cours de fonctionnement.
En d’autres termes, une valeur nice importante indique au noyau que ce processus peut attendre.
A l’opposé, plus la bonne valeur nice est négative, plus le processus cherche à obtenir une priorité. Il essaie d’obtenir autant de temps de CPU que possible, sans égard pour les autres processus.
- La commande nice permet de lancer l’exécution d’un processus avec une priorité importante ou faible
- Alors que la commande renice permet de modifier la priorité d’un processus déjà lancé et en cours d’exécution
Pour les curieux, sachez que c’est le noyau Linux qui décide quels processus attirent l’attention et les ressources nécessaires, et lesquels doivent attendre.
Ainsi, le kernel jongle en permanence des processus et des priorités pour s’assurer que l’ordinateur fonctionne aussi bien que possible et que tous les processus obtiennent leur part appropriée. Certains processus bénéficient d’un traitement préférentiel. Ils sont si importants pour le fonctionnement général de l’ordinateur que leurs besoins doivent passer avant, disons, votre navigateur.
Généralement, cette valeur de priorité est indiquée par une colonne PRI.
- Les processus systèmes importants ont une priorité de -20
- Tous les processus standard sont lancés avec une valeur nice de zéro
- Les valeurs de priorité de 0 à 99 sont réservées, tous les processus d’espace utilisateur ont une priorité de 100 à 139.
Comment afficher les priorités des processus dans Linux ?
Essentiellement, tous les utilitaires capables d’afficher la liste des processus peuvent vous renseigner sur la valeur nice.
Par exemple, top affiche une colonne NI.
Du côté de la commande ps, vous pouvez utiliser l’option -l pour afficher plus de colonnes.
On trouve aussi dans celle-ci une colonne NI.
Du coup pour lister les processus d’un utilisateur avec la colonne NI :
ps -lu malekalmorte
Enfin vous pouvez aussi utiliser cette commande qui va lister les processus avec le PID,PPID, le nom du processus et leurs valeurs nice respectives.
ps -eo pid,ppid,ni,comm
Certains auront remarqués une colonne PRI, voici les différences :
- NI – est la bonne valeur, qui est un concept d’espace utilisateur
- PR ou PRI – est la priorité réelle du processus, comme le montre le noyau Linux
Comment utiliser les commandes nice et renice sur Linux avec des exemples
La syntaxe de la commande nice
Voici la syntaxe à utiliser :
sudo nice <VALEUR> <COMMANDE>
Quelques éléments à savoir :
- Si aucune valeur n’est fournie, nice définit une priorité de 10 par défaut
- Une commande ou un programme s’exécute sans valeur nice a par défaut une priorité de zéro
- Seul root peut exécuter une commande ou un programme avec une priorité accrue ou élevée
- Les utilisateurs normaux ne peuvent exécuter qu’une commande ou un programme avec une faible priorité
Par exemple pour exécuter une nouvelle instance de bash avec une valeur nice de 10 :
nice -10 bash
Alors que pour assigner une valeur de priorité négative de -10 :
nice --10 gnome-terminal
La colonne affichage bien une valeur nice de 10 et la colonne PRI passe à 90.
Comment changer la priorité d’un processus avec l’option -n
L’option -n permet de donner une valeur de nice avec une syntaxe plus simple :
sudo nice -n <VALEUR> <COMMANDE>
Ainsi en reprenant l’exemple de bash, l’utilisation de nice devient :
nice -n 10 bash
Et pour une valeur nice négative :
nice -n -10 bash
Modifier la priorité d’un processus en cours d’exécution avec renice
Comment changer la priorité des processus (par le PID)
La commande renice fonctionne exactement de la même manière et vous pouvez de changer la priorité d’un processus en cours d’exécution.
Utiliser l’option -p avec le numéro du PID du processus pour cibler ce dernier.
Par exemple pour changer la valeur nice à 15 pour le processus dont le PID est 3737446 :
renice -n 15 -p 3737446
3737446 (process ID) old priority 0, new priority 15
Comment changer la priorité pour tous les processus appartenant à un utilisateur
Pour modifier la priorité de tous les processus en cours d’exécution pour un utilisateur, utilisez l’option -u.
Ainsi ci-dessous, on change la priorité à 5 de tous les processus de l’utilisateur malekalmorte :
renice -n 5 -u malekamorte
Comment changer la priorité pour tous les processus appartenant à un groupe d’utilisateur
Enfin si vous devez changer la priorité de tous les processus d’un groupe utilisateur, utilisez l’option -g.
Dans cet exemple, on change la priorité de tous les processus du groupe utilisateur malekalmorte à la valeur 20 :
renice -n 20 -g malekalmorte
Liens
- Utiliser la commande PS pour lister les processus sur Linux avec des exemples
- VMStat : Mesures de performance Linux
- Top : lister les processus sur Linux
- Commande PS : lister les processus sur Linux
- Utiliser la commande Kill, Killall, pkill pour arrêter un processus sur Linux
- Comment utiliser les commandes nice et renice sur Linux pour définir des priorités de processus
- 6 exemples d’utilisation de la commande Kill sur Linux
- Qu’est-ce que le load average sur Linux
- Mesurer le débit et lister les connexions réseaux sur Linux
- La mémoire sur Linux : comment ça marche
L’article Comment utiliser les commandes nice et renice sur Linux pour définir des priorités de processus est apparu en premier sur malekal.com.
0 Commentaires