Kif Issettja l-Prijorità tal-Proċess tal-Linux billi tuża Kmandi sbieħ u renice


F'dan l-artikolu, aħna ser nispjegaw fil-qosor l-iskedar tal-qalba (magħruf ukoll bħala l-iskedar tal-proċess), u l-prijorità tal-proċess, li huma suġġetti lil hinn mill-ambitu ta 'din il-gwida. Imbagħad se nidħlu ftit tal-ġestjoni tal-proċess tal-Linux: ara kif tmexxi programm jew kmand bi prijorità modifikata u wkoll ibiddel il-prijorità tat-tħaddim tal-proċessi tal-Linux.

Aqra wkoll: Kif Tissorvelja l-Proċessi tal-Linux u Issettja Limiti tal-Proċess fuq Bażi għal kull Utent

Scheduler tal-qalba hija unità tal-qalba li tiddetermina l-aktar proċess adattat mill-proċessi kollha li jistgħu jitħaddmu biex jiġi esegwit li jmiss; jalloka ħin tal-proċessur bejn il-proċessi runnable fuq sistema. Proċess runnable huwa wieħed li qed jistenna biss il-ħin tas-CPU, huwa lest biex jiġi eżegwit.

L-iskedar jifforma l-qalba tal-multitasking fil-Linux, billi juża algoritmu ta' skedar ibbażat fuq il-prijorità biex jagħżel bejn il-proċessi runnable fis-sistema. Jikklassifika l-proċessi bbażati fuq l-aktar ħaqqhom kif ukoll il-ħtieġa għal ħin CPU.

Il-qalba taħżen ħafna informazzjoni dwar proċessi inkluża l-prijorità tal-proċess li hija sempliċement il-prijorità tal-iskedar mehmuża ma 'proċess. Proċessi bi prijorità ogħla jiġu eżegwiti qabel dawk bi prijorità aktar baxxa, filwaqt li proċessi bl-istess prijorità jiġu skedati wieħed wara l-ieħor, ripetutament.

Hemm total ta '140 prijorità u żewġ firxiet ta' prijorità distinti implimentati fil-Linux. L-ewwel wieħed huwa valur sabiħ (niceness) li jvarja minn -20 (l-ogħla valur ta' prijorità) sa 19 (l-inqas valur ta' prijorità) u l-inadempjenza hija 0, dan huwa dak li se niskopru f'din il-gwida. L-oħra hija l-prijorità fil-ħin reali, li tvarja minn 1 sa 99 awtomatikament, imbagħad 100 sa 139 huma maħsuba għall-ispazju tal-utent.

Karatteristika importanti tal-Linux hija l-iskedar dinamiku bbażat fuq il-prijoritajiet, li jippermetti li l-valur sabiħ tal-proċessi jinbidel (jiżdied jew jitnaqqas) skont il-bżonnijiet tiegħek, kif naraw aktar tard.

Kif Tiċċekkja l-Valur Nizza tal-Proċessi Linux

Biex tara l-valuri sbieħ tal-proċessi, nistgħu nużaw utilitajiet bħal htop.

Biex tara l-proċessi valur sabiħ bil-kmand ps f'format definit mill-utent (hawnhekk il-NI il-kolonna turi s-sewwa tal-proċessi).

$ ps -eo pid,ppid,ni,comm

Alternattivament, tista 'tuża l-utilitajiet top jew htop biex tara l-Linux proċessi valuri sbieħ kif muri.

$ top
$ htop

Mill-outputs ta 'fuq u htop hawn fuq, tinnota li hemm kolonna msejħa PR u PRI b'mod riċettiv li turi l-prijorità ta' proċess.

Għalhekk, dan ifisser li:

  • NI – huwa l-valur sabiħ, li huwa kunċett ta’ spazju għall-utent, filwaqt li
  • PR jew PRI – hija l-prijorità attwali tal-proċess, kif jidher mill-kernel tal-Linux.

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

Firxa ta 'valur Nizza (NI): -20 sa 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.

Imma jekk tara rt aktar milli numru kif muri fil-screenshot hawn taħt, bażikament ifisser li l-proċess qed jaħdem taħt prijorità ta 'skedar f'ħin reali.

Kif Tmexxi Kmand b'Valur Nizza Mogħti fil-Linux

Hawnhekk, se nħarsu lejn kif nipprijoritizzaw l-użu tas-CPU ta 'programm jew kmand. Jekk għandek programm jew kompitu intensiv ħafna ta 'CPU, imma tifhem ukoll li jista' jieħu ħafna żmien biex jitlesta, tista 'tissettilha prijorità għolja jew favorevoli billi tuża l-kmand sabiħ.

Is-sintassi hija kif ġej:

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

Importanti:

  • Jekk ma jiġi pprovdut ebda valur, nice jistabbilixxi prijorità ta' 10 b'mod awtomatiku.
  • Kmand jew programm jitħaddem mingħajr defaults sbieħ għal prijorità ta' żero.
  • Root biss jista' jmexxi kmand jew programm bi prijorità miżjuda jew għolja.
  • L-utenti normali jistgħu jmexxu kmand jew programm biss bi prijorità baxxa.

Pereżempju, minflok ma tibda programm jew kmand bil-prijorità default, tista 'tibda bi prijorità speċifika billi tuża kmand sabiħ li ġej.

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

Tista 'wkoll tuża t-tielet metodu li huwa ftit konfuż speċjalment għal valuri negattivi ta' niceness.

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

Ibdel il-Prijorità tal-Iskedar ta' Proċess fil-Linux

Kif semmejna qabel, Linux jippermetti skedar dinamiku ibbażat fuq il-prijorità. Għalhekk, jekk programm diġà qed jaħdem, tista 'tbiddel il-prijorità tiegħu bil-kmand renice f'din il-forma:

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

Mill-output ta 'fuq tal-kampjun hawn taħt, is-sewwa tat-teamspe+ b'PID 1055 issa huwa -12 u għall-proċessi kollha proprjetà tal-utent apache huwa -2.

Xorta tuża dan l-output, tista 'tara l-formula PR = 20 + NI stands,

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

Kwalunkwe tibdil li tagħmel b'kmand renice lill-proċessi ta' utent valuri sbieħ huma applikabbli biss sal-reboot li jmiss. Biex tissettja valuri default permanenti, aqra t-taqsima li jmiss.

Kif Issettja Valur Nizza Default Ta 'Proċessi ta' Utent Speċifiku

Tista 'tissettja l-valur sabiħ default ta' utent jew grupp partikolari fil-fajl /etc/security/limits.conf. Il-funzjoni primarja tagħha hija li tiddefinixxi l-limiti tar-riżorsi għall-utenti illoggjati permezz tal-PAM.

Is-sintassi għad-definizzjoni ta' limitu għal utent hija kif ġej (u l-valuri possibbli tad-diversi kolonni huma spjegati fil-fajl):

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

Issa uża s-sintassi hawn taħt fejn hard - tfisser infurzar ta 'rabtiet iebsin u mezzi artab - infurzar tal-limiti artab.

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

Inkella, oħloq fajl taħt /etc/security/limits.d/ li jegħleb is-settings fil-fajl prinċipali ta' hawn fuq, u dawn il-fajls jinqraw f'ordni alfabetiku.

Ibda billi toħloq il-fajl /etc/security/limits.d/tecmint-priority.conf għall-utent tecmint:

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

Imbagħad żid din il-konfigurazzjoni fiha:

tecmint  hard  priority  10

Issejvja u agħlaq il-fajl. Minn issa 'l quddiem, kull proċess li jkun proprjetà ta' tecmint se jkollu valur sabiħ ta' 10 u PR ta' 30.

Għal aktar informazzjoni, aqra l-paġni man ta 'nice and renice:

$ man nice
$ man renice 

Inti tista 'wkoll tixtieq taqra dawn l-artikoli li ġejjin dwar il-ġestjoni tal-proċess Linux.

  1. Kif Sib u Joqtol Proċessi li Tħaddmu fil-Linux
  2. Gwida biex Qtil, Pkill u Qtil Kmandi biex Twaqqaf Proċess fil-Linux
  3. Kif Tissorvelja l-Użu tas-Sistema, il-Ħruġ u Issolvi l-problemi tas-Servers Linux
  4. CPUTool – Limitu u Kontroll l-Użu tas-CPU ta' Kwalunkwe Proċess fil-Linux

F'dan l-artikolu, spjegajna fil-qosor l-iskedar tal-kernel, il-prijorità tal-proċess, ħares lejn kif tmexxi programm jew kmand bi prijorità modifikata u wkoll tbiddel il-prijorità ta 'proċessi Linux attivi. Tista' taqsam kwalunkwe ħsibijiet dwar dan is-suġġett permezz tal-formola ta' feedback hawn taħt.