Nice

From EIK wiki

Autor

Reili Kaibald A21

Sügis 2014

Sissejuhatus

Nice on Unixi ja Unixi-laadsete operatsioonisüsteemide (nagu nt Linux) programm. Kuigi Linuxi süsteem on võimeline töös hoidma korraga mitmeid protsesse („töid“), tuleb siiski ette teatud piir töösolevatele protsessidele. Tuuma (kernel) ülesanne Linuxis on aktiivsetele protsessidele otsida protsessorist vaba „aega“.

Vaikimisi on kõik protsessid ühtviisi tähtsad ning neile on eraldatud sama palju protsessori aega. Prioriteetsuse parameeter (nice) on mõeldud selleks, et üht või teist protsessi kasutaja poolt kiirendada. Linuxi tuum reserveerib igale protsessile protsessori aega vastavalt määratud prioriteetsuse astmele. 1

Igale töötavale Unixi protsessile on määratud prioriteetsuse aste. Selleks, et muuta protsessi proriteetsuse astet, kasutataksegi nice ja renice käske.

nice – käsk programmi teatud prioriteediga käivitamiseks st käivitab kasutaja poolt ajastatud protsessi. Renice käsklus muudab käimasoleva protsessi prioriteeti.

  • Vahemik -20 (kõrgeim prioriteetsus, madalaim nice) kuni 19 (madalaim prioriteetsus, kõrgeim nice)
  • Ilma parameetrita antakse vaikeprioriteet 0

2

Tavakasutajad saavad määrata madalamaid prioriteetsuse astmeid (positiivsed nice väärtused). Selleks, et anda kõrgem prioriteetsuse aste, on vaja administraatori õigusi.

Süntaks

nice [OPTION] [COMMAND [ARG]...]  

3

Ülesehitus

  • Kõigepealt lisa prioriteetsus ADJUST’iga
-n, --adjustment=ADJUST
-nN, --adjustment=N	lisa arv N (vaikeväärtus on 10) 

4

  • kuva help ja exit
--help

  • väljutab version informatsiooni ja exit
--version

5

Käivitamine

Töötavate protsesside prioriteetsuse kindlakstegemine

Selleks on kaks erinevat moodust:

  • ps –al
  • top


Mõlemal juhul on prioriteetsuse aste ära toodud veeru NI all.6

Prioriteetsuse määramine uuele protsessile

nice -n [nice value] [command]:

nice -n 10 apt-get upgrade

Prioriteetsuse määramine olemasolevale protsessile

renice [nice value] -p [process id]:

renice 10 -p 21827

Prioriteetsuse määramine ühe kindla kasutaja kõikidele protsessidele

Mõnikord on vaja anda mõnele kindlale kasutajale madalam protsesside proriteetsuse tase kui teisele, et hoida süsteemi ressursse vajalikemateks (põhi)tegevusteks ja teisteks programmideks.

Kindel nice väärtuse saab anda mingile kindlale kasutajale või grupile failis /etc/security/limits.conf file.

/etc/security/limits.conf

See kasutab süntaksit:

[username] [hard|soft] priority [nice value] 7

Näited

  • Olemasoleva protsessi nice väärtuse saab kui kasutada käsku:
ps -o nice

8

Käivitades nice käskluse algatatakse uus protsess (töö) ja antakse talle prioriteetsuse (nice) aste samal ajal. Juba töötava protsessi prioriteetsuse astet saab muuta käsklusega renice.


Järgnev käsk algatab „large-job“ protsessi nice väärtusega kuni 12.

nice -12 large-job

Märka, et miinus märk 12 ees ei tähista miinust. Kui soovida nice väärtust -12, tuleb kirjutada 12 ette lisaks veel üks miinusmärk (--12).

nice --12 large-job

On oluline meelde jätta, et madalam nice väärtus tähistab kõrgemat prioriteetsuse astet. Niisiis -12 omab kõrgemat prioriteetsuse astet kui 12. Tavakasutajad saavad määrata madalamaid prioriteetsuse astmeid (positiivsed nice väärtused). Selleks, et anda kõrgem prioriteetsuse aste, on vaja administraatori õigusi.

Renice käsk on juba töötava töö prioriteetsuse mutmiseks.

renice 17 -p 1134

Antud käsk muudab töötava protsessi, mille id on 1134 töö nice väärtuse 17-ks. Praegusel juhul ei kirjutata miinus-märki nice väärtuse numbri ette. Järgnev käsk muudab protsessi 1134 nice väärtuse -3-ks:

renice -3 -p 1134

Kasutades ps käsklust, on võimalik töötavad protsessid välja printida. Kui lisada täht „l“ (nagu „list“), on võimalik nice väärtust näidata veerus, mille pealkirjaks on „NI“. Näiteks:

ps –al

9

Keskkonnamuutujad

Nice käsklust võivad mõjutada järgmised keskkonnamuutujad:

  • LANG
  • LC_ALL
  • LC_CTYPE
  • LC_MESSAGES
  • NLSPATH
  • PATH

10

Kokkuvõte

Nice käsku kasutatakse protsessi töö prioriteedi vähendamiseks või suurendamiseks, seega aeglustatakse või kiirendatakse selle töötlusse võtmist. See tähendab, et protsessid, millega kasutajal on kiirem, saab töösse võtta varem ning need saavad seega ka kiiremini tehtud.

Autori arvates on nice näol tegemist vägagi tarviliku käsuga, et olla ise oma administreerimise aja peremees. Kuna antud käsu vajalikkus ilmneb juhtumil, kui korraga on teoksil mitmed ja mitmed protsessid, kulub nice marjaks ära eelkõige kõrgema administreerimistasemega isikutele.

Kasutatud materjalid

  1. http://linux.about.com/library/cmd/blcmdl1_nice.htm
  2. http://linux.about.com/od/commands/a/Example-Uses-Of-The-Commands-nice-And-renice.htm
  3. http://www.thegeekstuff.com/2013/08/nice-renice-command-examples/
  4. http://pubs.opengroup.org/onlinepubs/9699919799/utilities/nice.html
  5. http://www.slashroot.in/nice-and-renice-command-usage-examples-process-priority-linux
  6. http://www.nixtutor.com/linux/changing-priority-on-linux-processes/
  7. http://linux.about.com/od/commands/a/Example-Uses-Of-The-Commands-nice-And-renice.htm
  8. http://www.computerhope.com/unix/unice.htm
  9. http://linux.about.com/library/cmd/blcmdl1_nice.htm
  10. http://pubs.opengroup.org/onlinepubs/9699919799/utilities/nice.html