Jinsi ya Kuweka Kipaumbele cha Mchakato wa Linux Kutumia Amri nzuri na za kupendeza


Katika makala haya, tutaeleza kwa ufupi kipanga ratiba cha kernel (pia hujulikana kama kipanga ratiba), na kipaumbele cha mchakato, ambazo ni mada zilizo nje ya upeo wa mwongozo huu. Kisha tutaingia katika usimamizi kidogo wa mchakato wa Linux: angalia jinsi ya kuendesha programu au amri kwa kipaumbele kilichobadilishwa na pia kubadilisha kipaumbele cha kuendesha michakato ya Linux.

Soma Pia: Jinsi ya Kufuatilia Michakato ya Linux na Kuweka Mipaka ya Mchakato kwa Msingi wa Kila Mtumiaji

Kipanga ratiba cha kernel ni kitengo cha punje ambacho huamua mchakato unaofaa zaidi kati ya michakato yote inayoweza kutekelezeka kutekeleza inayofuata; inatenga muda wa processor kati ya michakato inayoweza kukimbia kwenye mfumo. Mchakato unaoweza kutekelezwa ni ule ambao unangojea wakati wa CPU pekee, uko tayari kutekelezwa.

Kipanga ratiba huunda msingi wa kufanya kazi nyingi katika Linux, kwa kutumia algoriti ya kuratibu inayozingatia kipaumbele kuchagua kati ya michakato inayoendeshwa kwenye mfumo. Inaorodhesha michakato kulingana na inayostahiki zaidi na hitaji la wakati wa CPU.

Kernel huhifadhi habari nyingi juu ya michakato ikijumuisha kipaumbele cha mchakato ambacho ni kipaumbele cha kuratibu kilichowekwa kwenye mchakato. Michakato yenye kipaumbele cha juu itatekelezwa kabla ya zile zilizo na kipaumbele cha chini, huku michakato yenye kipaumbele sawa ikiratibiwa moja baada ya nyingine, mara kwa mara.

Kuna jumla ya vipaumbele 140 na safu mbili tofauti za kipaumbele zinazotekelezwa katika Linux. Ya kwanza ni thamani nzuri (uzuri) ambayo ni kati ya -20 (thamani ya kipaumbele cha juu) hadi 19 (thamani ya kipaumbele cha chini) na chaguomsingi ni 0, hii ndio tutafunua katika mwongozo huu. Nyingine ni kipaumbele cha wakati halisi, ambacho ni kati ya 1 hadi 99 kwa chaguo-msingi, kisha 100 hadi 139 zinakusudiwa kwa nafasi ya mtumiaji.

Sifa moja muhimu ya Linux ni kuratibu kwa msingi wa kipaumbele, ambayo inaruhusu thamani nzuri ya michakato kubadilishwa (kuongezeka au kupunguzwa) kulingana na mahitaji yako, kama tutakavyoona baadaye.

Jinsi ya Kuangalia Thamani Nzuri ya Michakato ya Linux

Ili kuona maadili mazuri ya michakato, tunaweza kutumia huduma kama vile htop.

Kuangalia michakato ya thamani nzuri na ps amri katika umbizo lililofafanuliwa na mtumiaji (hapa NI safuwima inaonyesha uzuri wa michakato).

$ ps -eo pid,ppid,ni,comm

Vinginevyo, unaweza kutumia huduma za juu au htop kutazama Linux inachakata maadili mazuri kama inavyoonyeshwa.

$ top
$ htop

Kutoka juu na matokeo ya htop hapo juu, utagundua kuwa kuna safu wima inayoitwa PR na PRI kwa njia inayoonyesha kipaumbele cha mchakato.

Kwa hivyo, hii inamaanisha kuwa:

  • NI - ni thamani nzuri, ambayo ni dhana ya nafasi ya mtumiaji, wakati
  • PR au PRI - ndio kipaumbele halisi cha mchakato, kama inavyoonekana na kinu cha Linux.

Total number of priorities = 140
Real time priority range(PR or PRI):  0 to 99 
User space priority range: 100 to 139

Kiwango kizuri cha thamani (NI): -20 hadi 19

PR = 20 + NI
PR = 20 + (-20 to + 19)
PR = 20 + -20  to 20 + 19
PR = 0 to 39 which is same as 100 to 139.

Lakini ukiona rt badala ya nambari kama inavyoonyeshwa kwenye picha ya skrini iliyo hapa chini, ina maana kwamba mchakato unaendelea chini ya kipaumbele cha wakati halisi cha kuratibu.

Jinsi ya Kuendesha Amri na Thamani Iliyopewa Nzuri katika Linux

Hapa, tutaangalia jinsi ya kuweka kipaumbele matumizi ya CPU ya programu au amri. Ikiwa una programu au kazi inayotumia CPU nyingi sana, lakini pia unaelewa kuwa inaweza kuchukua muda mrefu kukamilika, unaweza kuiweka kipaumbele cha juu au kinachofaa kwa kutumia amri nzuri.

Sintaksia ni kama ifuatavyo:

$ nice -n niceness-value [command args] 
OR
$ nice -niceness-value [command args] 	#it’s confusing for negative values
OR
$ nice --adjustment=niceness-value [command args]

Muhimu:

  • Ikiwa hakuna thamani iliyotolewa, nice huweka kipaumbele cha 10 kwa chaguomsingi.
  • Amri au programu inayoendeshwa bila chaguo-msingi nzuri kwa kipaumbele cha sifuri.
  • Mzizi pekee ndio unaweza kuendesha amri au programu kwa kipaumbele kilichoongezeka au cha juu.
  • Watumiaji wa kawaida wanaweza tu kutekeleza amri au programu bila kipaumbele cha chini.

Kwa mfano, badala ya kuanzisha programu au amri na kipaumbele chaguo-msingi, unaweza kuianzisha kwa kipaumbele maalum kwa kutumia amri nzuri.

$ sudo nice -n 5 tar -czf backup.tar.gz ./Documents/*
OR
$ sudo nice --adjustment=5 tar -czf backup.tar.gz ./Documents/*

Unaweza pia kutumia njia ya tatu ambayo inachanganya kidogo haswa kwa maadili hasi ya uzuri.

$ sudo nice -5 tar -czf backup.tar.gz  ./Documents/*

Badilisha Kipaumbele cha Kuratibu cha Mchakato katika Linux

Kama tulivyotaja hapo awali, Linux inaruhusu upangaji wa msingi wa kipaumbele. Kwa hivyo, ikiwa programu tayari inaendesha, unaweza kubadilisha kipaumbele chake na amri ya renice katika fomu hii:

$ renice -n  -12  -p 1055
$ renice -n -2  -u apache

Kutoka kwa sampuli ya matokeo ya juu hapa chini, uzuri wa teampe+ iliyo na PID 1055 sasa ni -12 na kwa michakato yote inayomilikiwa na mtumiaji apache ni -2.

Bado unatumia pato hili, unaweza kuona fomula PR = 20 + NI inasimama,

PR for ts3server = 20 + -12 = 8
PR for apache processes = 20 + -2 = 18

Mabadiliko yoyote utakayofanya kwa amri ya renice kwa michakato ya mtumiaji maadili mazuri yanatumika tu hadi iwashwe tena. Ili kuweka maadili chaguo-msingi ya kudumu, soma sehemu inayofuata.

Jinsi ya Kuweka Thamani Chaguo-msingi ya Taratibu Maalum za Mtumiaji

Unaweza kuweka thamani nzuri chaguo-msingi ya mtumiaji au kikundi fulani katika faili ya /etc/security/limits.conf. Kazi yake ya msingi ni kufafanua vikomo vya rasilimali kwa watumiaji walioingia kupitia PAM.

Syntax ya kufafanua kikomo kwa mtumiaji ni kama ifuatavyo (na maadili yanayowezekana ya safu wima anuwai yamefafanuliwa kwenye faili):

#<domain>   <type>  <item>  <value>

Sasa tumia sintaksia hapa chini ambapo ngumu - inamaanisha kutekeleza viungo ngumu na njia laini - kutekeleza mipaka laini.

<username>  <hard|soft>  priority  <nice value>

Vinginevyo, unda faili chini ya /etc/security/limits.d/ ambayo hubatilisha mipangilio katika faili kuu iliyo hapo juu, na faili hizi zinasomwa kwa mpangilio wa alfabeti.

Anza kwa kuunda faili /etc/security/limits.d/tecmint-priority.conf kwa mtumiaji tecmint:

# vi /etc/security/limits.d/tecmint-priority.conf

Kisha ongeza usanidi huu ndani yake:

tecmint  hard  priority  10

Hifadhi na funga faili. Kuanzia sasa, mchakato wowote unaomilikiwa na tecmint utakuwa na thamani nzuri ya 10 na PR ya 30.

Kwa habari zaidi, soma kurasa za man za nice na renice:

$ man nice
$ man renice 

Unaweza pia kupenda kusoma nakala hizi zifuatazo kuhusu usimamizi wa mchakato wa Linux.

  1. Jinsi ya Kupata na Kuua Michakato ya Uendeshaji katika Linux
  2. Mwongozo wa Kuua, Pkill na Killall Amri za Kukomesha Mchakato katika Linux
  3. Jinsi ya Kufuatilia Matumizi ya Mfumo, Kukatika na Kutatua Seva za Linux
  4. CPUTool - Weka Kikomo na Udhibiti Utumiaji wa CPU wa Mchakato Wowote katika Linux

Katika nakala hii, tulielezea kwa ufupi kipanga kernel, kipaumbele cha mchakato, tuliangalia jinsi ya kuendesha programu au amri kwa kipaumbele kilichobadilishwa na pia kubadilisha kipaumbele cha michakato inayotumika ya Linux. Unaweza kushiriki mawazo yoyote kuhusu mada hii kupitia fomu ya maoni iliyo hapa chini.