
Les nice
et renice
Les commandes vous permettent d'ajuster la façon dont le noyau traite ses processus en ajustant ses priorités. Lisez ce tutoriel pour apprendre à les utiliser sur les systèmes d'exploitation Linux et Unix, comme macOS.
Tout est une question de procédure
À l'intérieur de votre ordinateur Linux ou Unix, il y aura de nombreux processus en cours d'exécution avant même de démarrer l'application que vous souhaitez utiliser. La plupart de ces processus sont des éléments vitaux de Linux lui-même ou des processus de support pour son environnement de bureau graphique.. Il se passe beaucoup de choses dans les coulisses. De toute façon, il n'y a qu'un nombre limité de ressources système et de temps CPU pour tout le monde. Le noyau Linux est le contrôleur de tous ces processus.
C'est le noyau qui doit choisir quels processus reçoivent l'attention et les ressources en ce moment, et lesquels doivent attendre. Le noyau jongle continuellement avec les processus et les priorités pour s'assurer que l'ordinateur fonctionne aussi bien que possible et que tous les processus sont correctement engagés. Certains processus bénéficient d'un traitement préférentiel. Ils sont si importants pour le fonctionnement global de l'ordinateur que vos besoins doivent passer avant, Disons, ton navigateur.
Bon rapport qualité prix
L'un des critères utilisés pour établir comment le noyau traite une procédure est la valeur nice. Chaque procédure a une bonne valeur. La valeur nice est un entier dans la plage de -19 une 20. Tous les processus standard commencent par une belle valeur de zéro.
L'astuce ici est que plus la belle valeur est élevée, meilleure sera votre procédure pour le autre Processus. En d'autres termes, une belle valeur élevée indique au noyau que cette procédure est heureuse d'attendre. Un nombre négatif est le contraire d'être gentil. Plus la valeur négative agréable est élevée, plus égoïste Le processus est. Vous essayez d'obtenir autant de temps CPU que possible, sans prêter attention aux autres processus.
Nous pouvons utiliser le nice
commande à mettez bon rapport qualité prix quand un le processus commence et nous pouvons utiliser renice
pour régler bon rapport qualité prix d'un processus en cours.
Le bon commandement
Nous pouvons utiliser le nice
commande pour ajuster la valeur nice d'un programme lorsque nous le lançons. Cela nous permet d'augmenter ou de diminuer la priorité que le noyau donne à la procédure, en lien avec les autres processus.
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 démarrer le programme avec la commande suivante:
./ackermann
Nous pouvons utiliser le top
commande pour afficher le programme en cours d'exécution.
Haut
Nous pouvons voir les détails de la ackermann
programme en top
. La bonne valeur est le chiffre dans la "colonne NI". Il a été mis à zéro comme on pouvait l'espérer.
Redémarrons et cette fois rendons-le moins exigeant. Nous fixerons une bonne valeur de 15 pour lui ackermann
calendrier comme suit. Ecrire gentil, un espace, -15, un autre espace puis le nom du programme que vous souhaitez démarrer. Dans notre exemple, notre programmeur factice utilise ./ackermann
.
joli -15 ./ackermann
Faites attention, les “-15” no es quince negativo. C'est quinze positifs. Les “-” es necesario para indicar nice
on passe un paramètre. Pour indiquer un nombre négatif, debe escribir dos caracteres “-“.
Si nous commençons maintenant top
de nouveau, nous pouvons voir le changement dans le comportement de ackermann
.
Haut
Avec une bonne valeur de 15, ackermann
ne consomme pas la plupart du temps CPU. GNOME et Rhythmbox utilisent plus. nous avons régné ackermann
dans un instant.
Faisons maintenant le contraire et donnons ackermann
une bonne valeur négative. Tenga en cuenta el uso de dos caracteres “-“. Pour rendre une application plus égoïste et moins agréable, Tu dois utiliser sudo
. Tout le monde peut rendre votre application plus agréable, mais seuls les super utilisateurs peuvent en faire un de plus égoïste.
sudo sympa --10 ./ackermann
Courons à l'étage et voyons quelle différence cela a fait.
Haut
Cette fois ackermann
a une bonne valeur de -10. Il revient sur la première ligne et consomme plus de temps CPU qu'avant.
La commande renice
Les renice
La commande permet de régler la valeur agréable d'une procédure en cours. Nous n'avons pas besoin de l'arrêter et de le relancer avec nice
. Nous pouvons déterminer une nouvelle valeur à la volée.
Les renice
la commande prend l'identifiant de la procédure, o PID, de la procédure en paramètre de ligne de commande. Podemos extraer el ID del procedimiento de la columna “PID” au top
, nous pouvons l'utiliser ps
et grep
pour nous le trouver, de la manière suivante. Évidemment, vous écrirez votre nom d'utilisateur au lieu de dave
et le nom de la procédure qui vous intéresse au lieu de ackermann
.
ps - je dave | poignée ackermann
Maintenant que nous avons le PID, nous pouvons l'utiliser avec renice
. nous déterminerons ackermann
retour à un comportement plus agréable avec une bonne valeur de cinq. Pour modifier la valeur nice d'une procédure en cours d'exécution, doit utiliser sudo
. Veuillez noter qu’il n’y a pas de “-” dans le 5
paramètre. Vous n'en avez pas besoin pour les nombres positifs et vous n'en avez besoin que d'un, pas deux, pour les nombres négatifs.
sudo renice -n 5 2339
Nous obtenons la confirmation que renice
la bonne valeur a changé. Il nous montre l'ancienne valeur et la nouvelle valeur.
Le noyau en général fait un excellent travail de gestion des priorités et d'allocation de temps CPU et de ressources système. Mais si vous devez exécuter une longue tâche gourmande en CPU 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 mieux pour tout le monde.