LFCS: Monitora l-Użu tar-Riżorsi tal-Proċessi tal-Linux u Issettja Limiti tal-Proċess fuq Bażi għal kull Utent - Parti 14


Minħabba modifiki riċenti fl-għanijiet tal-eżami taċ-ċertifikazzjoni LFCS effettivi mit-2 ta’ Frar 2016, qed inżidu wkoll l-artikoli meħtieġa mas-serje LFCE.

Kull amministratur tas-sistema Linux jeħtieġ li jkun jaf kif jivverifika l-integrità u d-disponibbiltà tal-ħardwer, ir-riżorsi u l-proċessi ewlenin. Barra minn hekk, l-iffissar ta' limiti ta' riżorsi fuq bażi ta' kull utent irid ikun ukoll parti mis-sett ta' ħiliet tiegħu/tagħha.

F'dan l-artikolu se nesploraw ftit modi kif niżguraw li s-sistema kemm il-ħardwer kif ukoll is-softwer qed iġibu ruħhom b'mod korrett biex jiġu evitati kwistjonijiet potenzjali li jistgħu jikkawżaw waqfien tal-produzzjoni mhux mistennija u telf ta 'flus.

Statistika tal-Proċessuri tar-Rapportar tal-Linux

B'mpstat tista' tara l-attivitajiet għal kull proċessur individwalment jew is-sistema kollha kemm hi, kemm bħala stampa ta' darba jew b'mod dinamiku.

Sabiex tuża din l-għodda, ser ikollok bżonn tinstalla sysstat:

# yum update && yum install sysstat              [On CentOS based systems]
# aptitutde update && aptitude install sysstat   [On Ubuntu based systems]
# zypper update && zypper install sysstat        [On openSUSE systems]

Aqra aktar dwar sysstat u l-utilitajiet tiegħu fuq Tgħallem Sysstat u l-Utilitajiet tiegħu mpstat, pidstat, iostat u sar fil-Linux

Ladarba tkun installat mpstat, użah biex tiġġenera rapporti tal-istatistika tal-proċessuri.

Biex turi 3 rapporti globali tal-użu tas-CPU (-u) għas-CPUs kollha (kif indikat minn -P ALL) f'intervall ta' 2 sekondi, agħmel:

# mpstat -P ALL -u 2 3
Linux 3.19.0-32-generic (linux-console.net) 	Wednesday 30 March 2016 	_x86_64_	(4 CPU)

11:41:07  IST  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
11:41:09  IST  all    5.85    0.00    1.12    0.12    0.00    0.00    0.00    0.00    0.00   92.91
11:41:09  IST    0    4.48    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   94.53
11:41:09  IST    1    2.50    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   97.00
11:41:09  IST    2    6.44    0.00    0.99    0.00    0.00    0.00    0.00    0.00    0.00   92.57
11:41:09  IST    3   10.45    0.00    1.99    0.00    0.00    0.00    0.00    0.00    0.00   87.56

11:41:09  IST  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
11:41:11  IST  all   11.60    0.12    1.12    0.50    0.00    0.00    0.00    0.00    0.00   86.66
11:41:11  IST    0   10.50    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   88.50
11:41:11  IST    1   14.36    0.00    1.49    2.48    0.00    0.00    0.00    0.00    0.00   81.68
11:41:11  IST    2    2.00    0.50    1.00    0.00    0.00    0.00    0.00    0.00    0.00   96.50
11:41:11  IST    3   19.40    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   79.60

11:41:11  IST  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
11:41:13  IST  all    5.69    0.00    1.24    0.00    0.00    0.00    0.00    0.00    0.00   93.07
11:41:13  IST    0    2.97    0.00    1.49    0.00    0.00    0.00    0.00    0.00    0.00   95.54
11:41:13  IST    1   10.78    0.00    1.47    0.00    0.00    0.00    0.00    0.00    0.00   87.75
11:41:13  IST    2    2.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   97.00
11:41:13  IST    3    6.93    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   92.57

Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:     all    7.71    0.04    1.16    0.21    0.00    0.00    0.00    0.00    0.00   90.89
Average:       0    5.97    0.00    1.16    0.00    0.00    0.00    0.00    0.00    0.00   92.87
Average:       1    9.24    0.00    1.16    0.83    0.00    0.00    0.00    0.00    0.00   88.78
Average:       2    3.49    0.17    1.00    0.00    0.00    0.00    0.00    0.00    0.00   95.35
Average:       3   12.25    0.00    1.16    0.00    0.00    0.00    0.00    0.00    0.00   86.59

Biex tara l-istess statistika għal CPU speċifiku (CPU 0 fl-eżempju li ġej), uża:

# mpstat -P 0 -u 2 3
Linux 3.19.0-32-generic (linux-console.net) 	Wednesday 30 March 2016 	_x86_64_	(4 CPU)

11:42:08  IST  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
11:42:10  IST    0    3.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   96.50
11:42:12  IST    0    4.08    0.00    0.00    2.55    0.00    0.00    0.00    0.00    0.00   93.37
11:42:14  IST    0    9.74    0.00    0.51    0.00    0.00    0.00    0.00    0.00    0.00   89.74
Average:       0    5.58    0.00    0.34    0.85    0.00    0.00    0.00    0.00    0.00   93.23

L-output tal-kmandi ta’ hawn fuq juri dawn il-kolonni:

  1. CPU: Numru tal-proċessur bħala numru sħiħ, jew il-kelma kollha bħala medja għall-proċessuri kollha.
  2. %usr: Perċentwal ta' utilizzazzjoni tas-CPU waqt it-tħaddim ta' applikazzjonijiet fil-livell tal-utent.
  3. %sbieħ: L-istess bħal %usr, iżda bi prijorità sabiħa.
  4. %sys: Perċentwal ta' utilizzazzjoni tas-CPU li seħħet waqt l-eżekuzzjoni ta' applikazzjonijiet tal-kernel. Dan ma jinkludix il-ħin mgħoddi biex jittratta l-interruzzjonijiet jew l-immaniġġjar tal-ħardwer.
  5. %iowait: Perċentwal ta' ħin meta s-CPU partikolari (jew kollha) kien idle, li matulu kien hemm operazzjoni ta' I/O b'ħafna riżorsi skedata fuq dak is-CPU. Spjegazzjoni aktar dettaljata (b'eżempji) tista' tinstab hawn.
  6. %irq: Perċentwal ta' ħin imqatta' jservi ta' interruzzjonijiet tal-ħardwer.
  7. %soft: L-istess bħal %irq, iżda b'interruzzjonijiet tas-softwer.
  8. %steal: Perċentwal ta' ħin mgħoddi f'stennija involontarja (ħin misruq jew misruq) meta magna virtwali, bħala mistiedna, tkun \tirbaħ l-attenzjoni tal-hypervisor waqt li tikkompeti għas-CPU(s) . Dan il-valur għandu jinżamm żgħir kemm jista' jkun. Valur għoli f'dan il-qasam ifisser li l-magna virtwali qed tieqaf - jew dalwaqt se tkun.
  9. %mistieden: Perċentwal ta' ħin imqatta' jmexxi proċessur virtwali.
  10. %idle: persentaġġ ta' ħin meta CPU(s) ma kienux qed iwettqu l-ebda ħidma. Jekk tosserva valur baxx f'din il-kolonna, dik hija indikazzjoni tas-sistema li titqiegħed taħt tagħbija tqila. F'dak il-każ, ser ikollok bżonn tagħti ħarsa aktar mill-qrib lejn il-lista tal-proċess, kif ser niddiskutu f'minuta, biex tiddetermina x'qed jikkawżaha.

Biex tpoġġi l-proċessur taħt tagħbija kemmxejn għolja, mexxi l-kmandi li ġejjin u mbagħad eżegwixxi mpstat (kif indikat) f'terminal separat:

# dd if=/dev/zero of=test.iso bs=1G count=1
# mpstat -u -P 0 2 3
# ping -f localhost # Interrupt with Ctrl + C after mpstat below completes
# mpstat -u -P 0 2 3

Fl-aħħarnett, qabbel mal-output ta 'mpstat taħt ċirkostanzi \normali:

Kif tistgħu taraw fl-immaġni hawn fuq, CPU 0 kien taħt tagħbija kbira matul l-ewwel żewġ eżempji, kif indikat mill-kolonna %idle.

Fit-taqsima li jmiss se niddiskutu kif nidentifikaw dawn il-proċessi li għandhom qalbhom ir-riżorsi, kif niksbu aktar informazzjoni dwarhom, u kif tieħu azzjoni xierqa.

Rappurtar tal-Proċessi Linux

Biex nilnukaw il-proċessi li jagħżelhom skont l-użu tas-CPU, se nużaw il-kmand magħruf sew ps bil--eo (biex tagħżel il-proċessi kollha b'format definit mill-utent) u --sort(biex tispeċifika ordni ta' għażla apposta) għażliet, bħal hekk:

# ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu

Il-kmand ta' hawn fuq se juri biss il-PID, PPID, il-kmand assoċjat mal-proċess, u l-perċentwal tal-użu tas-CPU u r-RAM magħżula bil-perċentwali tal-użu tas-CPU f'ordni dixxendenti . Meta eżegwit waqt il-ħolqien tal-fajl .iso, hawn l-ewwel ftit linji tal-output:

Ladarba nkunu identifikajna proċess ta' interess (bħal dak b'PID=2822), nistgħu nanavigaw lejn /proc/PID (/proc/2822 f'dan il-każ) u tagħmel lista tad-direttorju.

Dan id-direttorju huwa fejn jinżammu diversi fajls u sottodirettorji b'informazzjoni dettaljata dwar dan il-proċess partikolari waqt li jkun qed jaħdem.

  1. /proc/2822/io fih statistika IO għall-proċess (numru ta’ karattri u bytes moqrija u miktuba, fost oħrajn, waqt operazzjonijiet IO).
  2. /proc/2822/attr/current juri l-attributi attwali tas-sigurtà SELinux tal-proċess.
  3. /proc/2822/cgroup jiddeskrivi l-gruppi ta' kontroll (cgroups fil-qosor) li għalihom jappartjeni l-proċess jekk l-għażla tal-konfigurazzjoni tal-kernel CONFIG_CGROUPS hija attivata, li tista' tivverifika biha:

# cat /boot/config-$(uname -r) | grep -i cgroups

Jekk l-għażla hija attivata, għandek tara:

CONFIG_CGROUPS=y

Billi tuża cgroups tista’ timmaniġġja l-ammont ta’ użu ta’ riżorsi permess fuq bażi ta’ kull proċess kif spjegat fil-Kapitoli 1 sa 4 tat-taqsima Gruppi ta’ Kontroll tad-dokumentazzjoni tas-Server Ubuntu 14.04.

Il-/proc/2822/fd huwa direttorju li fih rabta simbolika waħda għal kull deskrittur tal-fajl li jkun fetaħ il-proċess. L-immaġni li ġejja turi din l-informazzjoni għall-proċess li nbeda f'tty1 (l-ewwel terminal) biex tinħoloq l-immaġni .iso:

L-immaġni ta 'hawn fuq turi li stdin (deskrittur tal-fajl 0), stdout (deskrittur tal-fajl 1), u stderr (deskrittur tal-fajl 2) huma mmappjati għal /dev/zero, /root/test.iso, u /dev/tty1, rispettivament.

Aktar informazzjoni dwar /proc tista’ tinstab fid-dokument \Is-sistema tal-fajls /proc miżmum u miżmum minn Kernel.org, u fil-Manwal tal-Programmatur Linux.

L-issettjar ta' Limiti tar-Riżorsi fuq Bażi għal kull Utent fil-Linux

Jekk ma toqgħodx attent u tħalli lil kwalunkwe utent imexxi numru illimitat ta' proċessi, tista' eventwalment tesperjenza għeluq mhux mistenni tas-sistema jew tissakkar hekk kif is-sistema tidħol fi stat li ma jistax jintuża. Biex tevita li dan iseħħ, għandek tpoġġi limitu fuq in-numru ta 'proċessi li l-utenti jistgħu jibdew.

Biex tagħmel dan, editja /etc/security/limits.conf u żid il-linja li ġejja fil-qiegħ tal-fajl biex tissettja l-limitu:

*   	hard	nproc   10

L-ewwel qasam jista' jintuża biex jindika jew utent, grupp, jew kollha kemm huma (*), filwaqt li t-tieni qasam jinforza limitu iebes fuq in-numru ta' proċessi (nproc) għal 10. Biex japplikaw bidliet, logg out u lura huwa biżżejjed.

Għalhekk, ejja naraw x'jiġri jekk ċertu utent għajr root (jew wieħed leġittimu jew le) jipprova jibda shell fork bomb. Kieku ma nkunux implimentajna limiti, dan inizjalment iniedi żewġ każijiet ta 'funzjoni, u mbagħad jidduplikaw kull wieħed minnhom f'linja li ma tintemm qatt. Għalhekk, eventwalment iġib is-sistema tiegħek għal crawl.

Madankollu, bir-restrizzjoni t'hawn fuq fis-seħħ, il-bomba tal-furketta ma tirnexxix iżda l-utent xorta se jissakkar sakemm l-amministratur tas-sistema joqtol il-proċess assoċjat magħha:

TIP: Restrizzjonijiet oħra possibbli magħmula possibbli minn ulimit huma dokumentati fil-fajl limits.conf.

Linux Għodod Oħra ta' Ġestjoni tal-Proċess

Minbarra l-għodod diskussi qabel, amministratur tas-sistema jista’ wkoll ikollu bżonn:

a) Immodifika l-prijorità tal-eżekuzzjoni (użu tar-riżorsi tas-sistema) ta' proċess bl-użu ta' renice. Dan ifisser li l-kernel jalloka aktar jew inqas riżorsi tas-sistema għall-proċess ibbażat fuq il-prijorità assenjata (numru magħruf komunement bħala \niceness f'medda minn -20 sa 19 kodiċi>).

Aktar ma jkun baxx il-valur, akbar tkun il-prijorità tal-eżekuzzjoni. Utenti regolari (minbarra root) jistgħu jimmodifikaw biss is-sewwa tal-proċessi li huma proprjetarji għal valur ogħla (jiġifieri prijorità ta 'eżekuzzjoni aktar baxxa), filwaqt li root jista' jimmodifika dan il-valur għal kwalunkwe proċess, u jista 'jżid jew inaqqas.

Is-sintassi bażika ta 'renice hija kif ġej:

# renice [-n] <new priority> <UID, GID, PGID, or empty> identifier

Jekk l-argument wara l-valur il-ġdid ta 'prijorità ma jkunx preżenti (vojt), huwa ssettjat għal PID b'mod awtomatiku. F'dak il-każ, is-sewwa tal-proċess b'PID=identifier huwa ssettjat għal .

b) Tinterrompi l-eżekuzzjoni normali ta' proċess meta meħtieġ. Dan huwa komunement magħruf bħala qtil tal-proċess. Taħt il-barnuża, dan ifisser li l-proċess jintbagħat sinjal biex jintemm l-eżekuzzjoni tiegħu kif suppost u jirrilaxxa kwalunkwe riżorsi użati b'mod ordnat.

Biex toqtol proċess, uża l-kmand tal-qtil kif ġej:

# kill PID

Alternattivament, tista' tuża pkill biex ittemm il-proċessi kollha ta' sid partikolari (-u), jew sid ta' grupp (-G), jew saħansitra dawk il-proċessi li għandhom PPID in komuni (-P). Dawn l-għażliet jistgħu jiġu segwiti mir-rappreżentazzjoni numerika jew l-isem attwali bħala identifikatur:

# pkill [options] identifier

Pereżempju,

# pkill -G 1000

se joqtol il-proċessi kollha proprjetà tal-grupp b'GID=1000.

U,

# pkill -P 4993 

se joqtol il-proċessi kollha li l-PPID tagħhom huwa 4993.

Qabel ma tħaddem pkill, hija idea tajba li tittestja r-riżultati b'pgrep l-ewwel, forsi tuża l-għażla -l ukoll biex telenka l-ismijiet tal-proċessi. Huwa jieħu l-istess għażliet iżda jirritorna biss il-PIDs tal-proċessi (mingħajr ma tieħu ebda azzjoni ulterjuri) li jinqatlu jekk jintuża pkill.

# pgrep -l -u gacanepa

Dan huwa illustrat fl-immaġni li jmiss:

Sommarju

F'dan l-artikolu esplorajna ftit modi kif tissorvelja l-użu tar-riżorsi sabiex tivverifika l-integrità u d-disponibbiltà ta 'komponenti kritiċi ta' ħardwer u softwer f'sistema Linux.

Tgħallimna wkoll kif nieħdu azzjoni xierqa (jew billi naġġustaw il-prijorità ta’ eżekuzzjoni ta’ proċess partikolari jew billi nwaqqfuh) f’ċirkostanzi mhux tas-soltu.

Nittamaw li l-kunċetti spjegati f'dan it-tutorja kienu ta' għajnuna. Jekk għandek xi mistoqsijiet jew kummenti, tħossok liberu li tilħaqna billi tuża l-formola ta' kuntatt hawn taħt.