CLI Tool van de week : NICE/RENICE

september 29, 2018

CLI Tool van de Week, editie 36, 29 september 2018

NICE / RENICE

We noemen Linux een Multi-tasking besturingssysteem, maar dit is niet helemaal correct 1;
Linux gebruikt een zogenaamde Kernel Scheduler die bepaald welk proces het meest geschikt is om als volgende uitgevoerd te worden. De kernel wijst dus processor-tijd toe aan processen die wachten op CPU tijd om uitgevoerd te worden. Processen die niet klaar zijn, zoals bijvoorbeeld een programma dat wacht tot je op de OK knop drukt zullen ook niet in de wachtrij worden opgenomen.

Hoe beslist de Kernel welk proces de meeste prioriteit heeft? 2
Hiervoor gebruikt de Linux Kernel 2 systemen.

  1. de Nice of niceness van een proces.
  2. de Real-time priority van een proces.

In dit artikel bespreken we enkel nice systeem.

Hier verschijnen nice en renice op het toneel. Met nice start je een programma op met een bepaalde Niceness en met renice kun je deze aanpassen.

De niceness kan ingesteld worden tussen -20 (de hoogste prioriteit) en 19 (de laagste prioriteit), waarbij -20 het beste is voor het proces maar het minst goede voor de andere processen. Je kunt dus zeggen dat -20 niet nice (vriendelijk) en 19 heel vriendelijk.

Waarschuwing:

  • Als je een programma opstart met een lagere prioriteit zal het
    langer duren voor dit programma zijn werk voltooit (het programma zal dus
    trager worden).

Wil je kijken welke niceness een bepaald proces heeft dan kun je dat bekijken met ps zoals $ ps -eo pid,ppid,ni,comm

Figuur: $ ps -eo pid,ppid,ni,comm

De systaxis van NICE is heel simpel: nice -n xx PROGRAMMA waar xx een waarde is tussen -20 en 19.

De standaard nice waarde is 03 of renice, en kan oa. weergegeven worden in top en htop. of met ps zoals hierboven.

toch moeten we enkele dingen in acht nemen:

  1. Start je nice zonder parameter dan zal de nice waarde van 10 toegewezen worden.
  2. Enkel root kan een programma opstarten met een verhoogde prioriteit.
  3. gewone gebruikers kunnen enkel programma’s starten met een verlaagde prioriteit.

Wil je de “niceness” van een reeds actief proces aanpassen dan gebruik je renice:

De syntaxis van renice is : renice -n xx -g | -p | -u ARGUMENT waarbij xx de niceness is, en je kiest tussen de opties -g-p of -u (g= “Process Group ID”, p=”Process ID” en u=”Usernames”)

Zoals je ziet heeft renice meer opties dan nice

Meer informatie over wat je allemaal kan met nano is te vinden in de manpages of de infopages.

1 Multi-Core en Multi-Thread CPU’s even buiten beschouwing gelaten.
2 Als er processen zijn met dezelfde prioriteit dan worden ze simpelweg in volgorde uitgevoerd.
3 als je het programma opstart zonder nice

Happy Hacking !

Patrick Kox

Heb je tips of feedback, laat het gerust weten in comments, of via Email (patrick@linuxgebruikers.nl).

Deze artikels zijn ook beschikbaar op https://commandoregel.com

No Comments

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *