Changez les priorités des processus Linux avec Nice et Renice

Changez les priorités des processus Linux avec Nice et Renice

Chaque processus exécuté sur le système Linux a une priorité par défaut attribuée qui indique au système combien la puissance de traitement doit être dédiée à chaque processus particulier. Il est possible de modifier cette valeur de priorité avec la commande Nice ou Renice. Voici un petit exemple: disons que nous avons un script de bash très simple qui imprime la date et l'heure du fichier 1000 fois.

#!/ bac / bash pour i en $ (SEQ 1 1000); faire la date >> Date.txt; sommeil 1; fait 

Enregistrer ce script et le rendre exécutable avec la commande chmod. Exécuter le script:

$ Nice -N 00 ./date & 

En exécutant un ./ Script de date avec belle commande -19 Nous avons donné la date.sh très élevée comme la plage de priorité est de -20 (Higest) à 19 (le plus bas). Pour confirmer la commande Priority Exécuter PS -l à partir du même terminal.

F S uid pid ppid c pri Ni addr sz wchan tty time cmd 0 s 1000 3670 2940 0 80 0 - 1196 - pts / 2 00:00:00 bash 0 s 1000 6665 3670 0 90 10 - 1111 - PTS / 2 00:00 : 00 Date.SH 0 S 1000 6697 6665 0 90 10 - 754 - PTS / 2 00:00:00 sommeil 

Comme vous pouvez le voir, la commande Date Command and Sleep a la même priorité 10. Cependant, le sommeil coulant à l'intérieur d'une date.SH est un processus enfant de date.sh et date.SH est un processus de sommeil parent. À ce stade, nous pouvons essayer de modifier la priorité en une autre valeur avec la commande Renice et avec l'utilisation d'un PID (numéro d'identification de processus):

$ Renice 15 -P 6655 6665: ancienne priorité 10, nouvelle priorité 15 

La commande ci-dessus changera de bonne valeur de 10 à 15. Pour confirmer la valeur de priorité:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1000 3670 2940 0 80 0 - 1198 - PTS / 2 00:00:00 BASH 0 S 1000 6665 3670 0 95 15 - 1113 - PTS / 2 00:00 : 00 Date.SH 0 S 1000 7109 6665 0 95 15 - 754 - PTS / 2 00:00:00 sommeil 

NOTE: Avec un compte d'utilisateur non super-super, vous ne pouvez modifier les priorités que pour les processus que vous possédez, attribuez des priorités uniquement dans une plage de 0 à 19 et vous ne pouvez augmenter qu'une bonne valeur. L'utilisateur racine peut modifier n'importe quel processus en toute bonne valeur prioritaire. Une autre façon de modifier les valeurs de priorité est d'utiliser la commande supérieure et la clé R.

Tutoriels Linux connexes:

  • Gestion de scripts et de processus de bash multithread au…
  • Gestion des processus de fond de bash
  • Choses à installer sur Ubuntu 20.04
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Boucles imbriquées dans les scripts bash
  • Masterring Bash Script Loops
  • Exemples de liner complexe Linux Bash
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Xargs multithreads avec des exemples
  • Comment propager un signal aux processus d'enfants à partir d'un bash…