Dans cette étape, vous apprendrez à influencer la priorité de planification des processus en utilisant les commandes nice et renice. La valeur nice (également connue sous le nom de niceness) d'un processus indique sa priorité pour le planificateur Linux. Une valeur nice plus faible (plus négative) signifie une priorité plus élevée, tandis qu'une valeur nice plus élevée (plus positive) signifie une priorité plus faible. La plage des valeurs nice est généralement de -20 (priorité la plus élevée) à 19 (priorité la plus faible), 0 étant la valeur par défaut.
-
Démarrer plusieurs instances de sha1sum /dev/zero & puis démarrer une instance supplémentaire avec un niveau nice de 10.
Nous allons démarrer plusieurs processus sha1sum pour simuler un système occupé. Ensuite, nous en démarrerons un avec une priorité délibérément plus faible (valeur nice plus élevée) pour observer l'effet.
Tout d'abord, démarrez trois instances régulières (ajustez-les en fonction du nombre de cœurs de votre CPU si vous le souhaitez, mais au moins autant que de processeurs virtuels pour créer une contention) :
for i in {1..3}; do sha1sum /dev/zero & done
Ensuite, démarrez la quatrième instance avec un niveau nice de 10. Ce processus aura une priorité plus faible par rapport aux autres.
nice -n 10 sha1sum /dev/zero &
Vous verrez une sortie similaire à celle-ci, indiquant les PID des processus en arrière-plan :
[1] 5443
[2] 5444
[3] 5445
[4] 5446
(Remarque : Les valeurs PID dans votre sortie varieront.)
-
Utiliser les commandes ps et pgrep pour afficher le PID, le pourcentage d'utilisation du CPU, la valeur nice et le nom de l'exécutable pour chaque processus.
Observez les colonnes %CPU et NI. L'instance avec la valeur nice de 10 devrait afficher un pourcentage d'utilisation du CPU inférieur à celui des autres instances, car le planificateur lui accorde moins de temps CPU.
ps -o pid,pcpu,nice,comm $(pgrep sha1sum)
Recherchez le processus avec la valeur NI de 10. Son %CPU devrait être sensiblement inférieur à celui des autres.
PID %CPU NI COMMAND
5443 56.8 0 sha1sum
5444 58.0 0 sha1sum
5445 56.5 0 sha1sum
5446 6.7 10 sha1sum
(Remarque : Les valeurs %CPU exactes varieront en fonction de la charge du système et du nombre de cœurs, mais le processus avec nice 10 devrait avoir une part plus faible.)
-
Utiliser la commande sudo renice pour modifier le niveau nice de l'un des processus réguliers à 5.
La commande renice vous permet de modifier la valeur nice d'un processus déjà en cours d'exécution. Nous allons le démontrer en modifiant l'un des processus réguliers (valeur nice 0) à une valeur nice de 5.
Tout d'abord, identifiez le PID de l'un des processus sha1sum qui a une valeur nice de 0 à partir de la sortie de la commande ps précédente. Utilisons le premier de l'exemple ci-dessus (PID 5443).
sudo renice -n 5 <PID_of_regular_process>
Remplacez <PID_of_regular_process> par le PID réel que vous avez identifié. Par exemple :
sudo renice -n 5 5443
Vous devriez voir une sortie confirmant le changement de priorité :
5443 (process ID) old priority 0, new priority 5
-
Répéter les commandes ps et pgrep pour afficher le pourcentage d'utilisation du CPU et le niveau nice.
Observez le changement d'utilisation du CPU pour le processus dont vous avez modifié la valeur nice. Le processus avec la valeur nice 5 devrait maintenant avoir une utilisation du CPU légèrement inférieure à celle des processus avec la valeur nice 0, mais supérieure à celle du processus avec la valeur nice 10.
ps -o pid,pcpu,nice,comm $(pgrep sha1sum)
Vous devriez voir que la valeur NI pour le processus modifié est maintenant 5, et son utilisation du CPU reflète son nouveau niveau de priorité.
PID %CPU NI COMMAND
5443 55.4 5 sha1sum
5444 67.2 0 sha1sum
5445 67.1 0 sha1sum
5446 7.5 10 sha1sum
(Remarque : Les valeurs %CPU exactes varieront, mais vous devriez observer que les processus avec des valeurs nice plus faibles (priorité plus élevée) obtiennent plus de temps CPU.)