Comment définir les priorités de processus avec nice et renice sous Linux

Le nice et renice Les commandes vous permettent d’affiner la façon dont le noyau traite vos processus en ajustant leurs priorités. Lisez ce didacticiel pour apprendre à les utiliser dans des systèmes d’exploitation de type Linux et Unix tels que macOS.

Tout est une question de processus

À l’intérieur de votre ordinateur de type Linux ou Unix, de nombreux processus seront exécutés avant même que vous ne lanciez l’application que vous souhaitez utiliser. La majorité de ces processus sont des éléments vitaux de Linux lui-même ou des processus de support pour votre environnement de bureau graphique. Il se passe beaucoup de choses dans les coulisses. Bien sûr, il n’y a qu’un nombre limité de ressources système et de temps CPU à parcourir. Le noyau Linux est le contrôleur de tous ces processus.

C’est le noyau qui doit décider quels processus attirent l’attention et les ressources en ce moment, et lesquels doivent attendre. Le noyau jongle continuellement entre les processus et les 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, par exemple, votre navigateur.

La belle valeur

L’un des critères utilisés pour déterminer comment le noyau traite un processus est la valeur nice. Chaque processus a une belle valeur. La valeur gentille est un entier compris entre -19 et 20. Tous les processus standard sont lancés avec une valeur gentille de zéro.

L’astuce ici est que plus la valeur est élevée, plus votre processus est agréable à autre processus. En d’autres termes, une valeur nice élevée indique au noyau que ce processus est heureux d’attendre. Un nombre négatif est le contraire d’être gentil. Plus la valeur négative de la valeur est élevée, plus égoïste le processus est. Il essaie d’obtenir autant de temps CPU que possible, sans égard pour les autres processus.

Nous pouvons utiliser le nice commande à ensemble la belle valeur quand un le processus est lancé et nous pouvons utiliser renice à régler la belle valeur d’un processus en cours.

La belle commande

Nous pouvons utiliser le nice commande pour ajuster la valeur agréable d’un programme au fur et à mesure que nous le lançons. Cela nous permet d’augmenter ou de diminuer la priorité donnée au processus par le noyau, par rapport aux autres processus.

En relation :  Netflix acquiert les droits de Stream Seinfeld

Supposons qu’un programmeur ait écrit un programme appelé ackermann . Cela calcule Fonctions Ackerman. Il est gourmand en CPU et en mémoire. Le programmeur peut lancer le programme avec la commande suivante:

./ackermann

commande ackermann dans la fenêtre du terminal

Nous pouvons utiliser le top commande pour afficher le programme en cours d’exécution.

top

top courant dans un terminal

Nous pouvons voir les détails de la ackermann programme dans top. La valeur intéressante est le chiffre de la «colonne NI». Il a mis à zéro comme on pouvait s’y attendre.

Redémarrons-le et cette fois rendons-le moins exigeant. Nous allons définir une belle valeur de 15 pour le ackermann programme comme suit. Tapez nice, un espace, -15, un autre espace, puis le nom du programme que vous souhaitez lancer. Dans notre exemple, notre programmeur fictif utilise ./ackermann.

nice -15 ./ackermann

commande nice 15 dans la fenêtre du terminal

Attention, le «-15» n’est pas négatif de quinze. Il est positif quinze. Le «-» est nécessaire pour dire nice nous passons un paramètre. Pour indiquer un nombre négatif, vous devez taper deux caractères «-».

Si nous commençons maintenant top encore une fois, nous pouvons voir le changement de comportement de ackermann.

top

top courant dans un terminal

D’une belle valeur de 15, ackermann ne consomme pas le plus de temps CPU. GNOME et Rhythmbox en utilisent tous les deux plus. Nous avons retenu ackermann dans un petit instant.

Maintenant faisons l’inverse et donnons ackermann une belle valeur négative. Notez l’utilisation de deux caractères «-». Pour rendre une application plus égoïste et moins agréable, vous devez utiliser sudo. N’importe qui peut rendre son application plus agréable, mais seuls les super-utilisateurs peuvent en créer une de plus égoïste.

sudo nice --10 ./ackermann

commande nice -10 dans la fenêtre du terminal

Courons en haut et voyons quelle différence cela a fait.

top

top courant dans un terminal

Ce temps ackermann a une belle valeur de -10. Il est de retour sur la première ligne et consomme plus de temps CPU qu’auparavant.

La commande renice

Le renice La commande nous permet d’ajuster la valeur intéressante d’un processus en cours d’exécution. Nous n’avons pas besoin de l’arrêter et de le relancer avec nice. Nous pouvons définir une nouvelle valeur à la volée.

Le renice La commande prend l’ID de processus, ou PID, du processus comme paramètre de ligne de commande. Nous pouvons soit extraire l’ID de processus de la colonne «PID» dans top , ou nous pouvons utiliser ps et grep pour le trouver pour nous, comme suit. Évidemment, vous saisirez le nom de votre utilisateur au lieu de dave et le nom du processus qui vous intéresse au lieu de ackermann.

ps -eu dave | grep ackermann

Maintenant que nous avons le PID, nous pouvons l’utiliser avec renice. Nous allons mettre ackermann retour à un comportement plus agréable avec une belle valeur de cinq. Pour modifier la valeur agréable d’un processus en cours d’exécution, vous devez utiliser sudo. Notez qu’il n’y a pas de «-» sur le 5 paramètre. Vous n’en avez pas besoin pour les nombres positifs et vous n’en avez besoin que d’un, pas de deux, pour les nombres négatifs.

En relation :  Comment les compagnies de téléphone vérifient enfin les numéros d'identification de l'appelant
sudo renice -n 5 2339

Nous obtenons la confirmation que renice a changé la belle valeur. Il nous montre l’ancienne valeur et la nouvelle valeur.

Le noyau fait généralement un excellent travail de gestion des priorités et de distribution du temps CPU et des ressources système. Mais si vous avez une tâche longue et gourmande en ressources processeur à exécuter et que vous ne vous souciez pas de la fin, cela rendra votre ordinateur un peu plus fluide si vous définissez une valeur plus élevée pour cette tâche. Ce sera plus agréable pour tout le monde.

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.