Nice
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
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]...]
Ülesehitus
- Kõigepealt lisa prioriteetsus ADJUST’iga
-n, --adjustment=ADJUST -nN, --adjustment=N lisa arv N (vaikeväärtus on 10)
- kuva help ja exit
--help
- väljutab version informatsiooni ja exit
--version
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
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
Keskkonnamuutujad
Nice käsklust võivad mõjutada järgmised keskkonnamuutujad:
- LANG
- LC_ALL
- LC_CTYPE
- LC_MESSAGES
- NLSPATH
- PATH
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
- http://linux.about.com/library/cmd/blcmdl1_nice.htm
- http://linux.about.com/od/commands/a/Example-Uses-Of-The-Commands-nice-And-renice.htm
- http://www.thegeekstuff.com/2013/08/nice-renice-command-examples/
- http://pubs.opengroup.org/onlinepubs/9699919799/utilities/nice.html
- http://www.slashroot.in/nice-and-renice-command-usage-examples-process-priority-linux
- http://www.nixtutor.com/linux/changing-priority-on-linux-processes/
- http://linux.about.com/od/commands/a/Example-Uses-Of-The-Commands-nice-And-renice.htm
- http://www.computerhope.com/unix/unice.htm
- http://linux.about.com/library/cmd/blcmdl1_nice.htm
- http://pubs.opengroup.org/onlinepubs/9699919799/utilities/nice.html