Giunsa Pagbutang ang Priyoridad sa Proseso sa Linux Gamit ang nindot ug renice nga mga Sugo


Niini nga artikulo, among ipasabut sa daklit ang kernel scheduler (nailhan usab nga process scheduler), ug proseso nga prayoridad, nga mga hilisgutan nga lapas pa sa sakup niini nga giya. Dayon mag-dive kami sa gamay nga pagdumala sa proseso sa Linux: tan-awa kung giunsa pagpadagan ang usa ka programa o mando nga adunay gibag-o nga prayoridad ug usbon usab ang prayoridad sa pagpadagan sa mga proseso sa Linux.

Basaha Usab: Giunsa Pag-monitor ang Mga Proseso sa Linux ug Itakda ang Mga Limitasyon sa Proseso sa Basis sa Per-User

Ang kernel scheduler maoy usa ka yunit sa kernel nga nagtino sa labing haom nga proseso gikan sa tanang runnable nga proseso nga ipatuman sa sunod; naggahin kini og oras sa processor tali sa mga runnable nga proseso sa usa ka sistema. Ang usa ka runnable nga proseso mao ang usa nga naghulat lamang sa oras sa CPU, kini andam na nga ipatuman.

Ang scheduler nagporma sa kinauyokan sa multitasking sa Linux, gamit ang priority-based scheduling algorithm aron makapili tali sa mga runnable nga proseso sa sistema. Giranggo niini ang mga proseso base sa labing takos ingon man ang panginahanglan sa oras sa CPU.

Ang kernel nagtipig ug daghang impormasyon bahin sa mga proseso lakip ang prayoridad sa proseso nga mao lamang ang prayoridad sa pag-iskedyul nga gilakip sa usa ka proseso. Ang mga proseso nga adunay mas taas nga prayoridad ipatuman sa wala pa ang adunay ubos nga prayoridad, samtang ang mga proseso nga adunay parehas nga prayoridad gieskedyul usa pagkahuman sa sunod, balik-balik.

Adunay usa ka kinatibuk-an nga 140 nga mga prayoridad ug duha nga lahi nga mga prayoridad nga gipatuman sa Linux. Ang una kay nindot nga bili (niceness) nga gikan sa -20 (highest priority value) ngadto sa 19 (lowest priority value) ug ang default mao ang 0, mao kini ang atong madiskobrehan niini nga giya. Ang lain mao ang real-time nga prayoridad, nga gikan sa 1 ngadto sa 99 nga default, unya ang 100 ngadto sa 139 gituyo alang sa user-space.

Usa ka importante nga kinaiya sa Linux mao ang dinamikong pag-iskedyul nga gibase sa prayoridad, nga nagtugot sa nindot nga bili sa mga proseso nga mausab (nadugangan o mikunhod) depende sa imong mga panginahanglan, sama sa atong makita sa ulahi.

Giunsa Pagsusi ang Nindot nga Bili sa Mga Proseso sa Linux

Aron makita ang nindot nga mga kantidad sa mga proseso, mahimo namong gamiton ang mga utilities sama sa htop.

Para tan-awon ang mga proseso nindot nga kantidad gamit ang ps command sa user-defined format (dinhi ang NI ang column nagpakita sa kanindot sa mga proseso).

$ ps -eo pid,ppid,ni,comm

Sa laing paagi, mahimo nimong gamiton ang mga top o htop utilities aron makita ang mga proseso sa Linux nga nindot nga mga kantidad sama sa gipakita.

$ top
$ htop

Gikan sa taas ug htop nga mga output sa ibabaw, imong mamatikdan nga adunay kolum nga gitawag og PR ug PRI nga madawaton nga nagpakita sa prayoridad sa usa ka proseso.

Busa, kini nagpasabot nga:

  • NI – mao ang nindot nga bili, nga usa ka konsepto sa user-space, samtang
  • PR o PRI – mao ang aktuwal nga prayoridad sa proseso, nga makita sa Linux kernel.

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

Nindot nga kantidad sa kantidad (NI): -20 hangtod 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.

Apan kung makakita ka og rt kay sa numero sama sa gipakita sa screenshot sa ubos, kini nagpasabot nga ang proseso nagdagan ubos sa real-time nga prayoridad sa pag-iskedyul.

Giunsa ang Pagdagan Usa ka Sugo nga adunay Gihatag nga Nindot nga Bili sa Linux

Dinhi, atong tan-awon kung giunsa pag-una ang paggamit sa CPU sa usa ka programa o mando. Kung ikaw adunay usa ka CPU-intensive nga programa o buluhaton, apan nakasabut ka usab nga mahimo’g dugay nga makompleto, mahimo nimo kini ibutang nga usa ka taas o paborable nga prayoridad gamit ang nindot nga mando.

Ang syntax mao ang mosunod:

$ 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]

Importante:

  • Kung walay gihatag nga kantidad, ang nice magbutang ug prayoridad nga 10 isip default.
  • Usa ka sugo o programa nga gipadagan nga walay nindot nga mga default ngadto sa prayoridad nga sero.
  • Ang gamut lang ang makadagan ug command o program nga mas taas o taas ang prayoridad.
  • Ang mga normal nga tiggamit mahimo ra nga magpadagan sa usa ka mando o programa nga adunay gamay nga prayoridad.

Pananglitan, imbis nga magsugod sa usa ka programa o sugo nga adunay default nga prayoridad, mahimo nimong sugdan kini sa usa ka piho nga prayoridad gamit ang pagsunod sa nindot nga mando.

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

Mahimo usab nimo gamiton ang ikatulo nga pamaagi nga medyo makalibog labi na alang sa negatibo nga mga kantidad sa kaanyag.

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

Usba ang Pag-iskedyul nga Priyoridad sa usa ka Proseso sa Linux

Sama sa among nahisgutan kaniadto, gitugotan sa Linux ang dinamikong pag-iskedyul nga nakabase sa prayoridad. Busa, kung ang usa ka programa nagdagan na, mahimo nimong usbon ang prayoridad niini gamit ang renice nga sugo niini nga porma:

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

Gikan sa sample top output sa ubos, ang kanindot sa teamspe+ nga adunay PID 1055 kay -12 ug para sa tanang proseso nga gipanag-iya sa user apache kay -2.

Gigamit gihapon kini nga output, imong makita ang pormula nga PR = 20 + NI stands,

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

Ang bisan unsang mga pagbag-o nga imong gihimo gamit ang renice nga mando sa mga proseso sa usa ka tiggamit ang nindot nga mga kantidad magamit ra hangtod sa sunod nga pag-reboot. Para magbutang ug permanenteng default values, basaha ang sunod nga seksyon.

Giunsa Pagbutang ang Default nga Nindot nga Bili sa Mga Proseso sa Piho nga Gumagamit

Mahimo nimong ibutang ang default nindot nga bili sa usa ka partikular nga user o grupo sa /etc/security/limits.conf file. Ang panguna nga gimbuhaton niini mao ang pagtino sa mga limitasyon sa kapanguhaan alang sa mga tiggamit nga naka-log in pinaagi sa PAM.

Ang syntax alang sa pagtino sa usa ka limitasyon alang sa usa ka user mao ang mosunod (ug ang posible nga mga bili sa lain-laing mga kolum gipasabut sa file):

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

Karon gamita ang syntax sa ubos diin lisud - nagpasabut sa pagpatuman sa mga gahi nga mga link ug humok nga paagi - pagpatuman sa humok nga mga limitasyon.

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

Sa laing bahin, paghimo og file ubos sa /etc/security/limits.d/ nga mo-override sa mga setting sa main file sa ibabaw, ug kining mga file basahon sa alphabetical order.

Sugdi pinaagi sa paghimo sa file /etc/security/limits.d/tecmint-priority.conf para sa user tecmint:

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

Dayon idugang kini nga configuration niini:

tecmint  hard  priority  10

I-save ug isira ang file. Sukad karon, ang bisan unsang proseso nga gipanag-iya sa tecmint adunay nindot nga kantidad nga 10 ug PR nga 30.

Para sa dugang nga impormasyon, basaha ang man page ni nice and renice:

$ man nice
$ man renice 

Mahimo usab nimo nga basahon kining mosunod nga mga artikulo mahitungod sa pagdumala sa proseso sa Linux.

  1. Unsaon Pagpangita ug Pagpatay sa Mga Proseso sa Pagdagan sa Linux
  2. Usa ka Giya sa Pagpatay, Pkill ug Pagpatay sa mga Sugo sa Pagtapos sa Proseso sa Linux
  3. Unsaon Pag-monitor sa Paggamit sa Sistema, Pagkawala ug Pag-troubleshoot sa mga Server sa Linux
  4. CPUTool – Limitahan ug Kontrola ang Paggamit sa CPU sa Bisan unsang Proseso sa Linux

Niini nga artikulo, gipatin-aw namo sa daklit ang kernel scheduler, priority sa proseso, gitan-aw kung giunsa pagpadagan ang usa ka programa o mando nga adunay gibag-o nga prayoridad ug gibag-o usab ang prayoridad sa mga aktibo nga proseso sa Linux. Mahimo nimong ipaambit ang bisan unsang mga hunahuna bahin sa kini nga hilisgutan pinaagi sa porma sa feedback sa ubos.