LFCS: Pag-monitor sa Paggamit sa Kapanguhaan sa Mga Proseso sa Linux ug Pagtakda sa mga Limitasyon sa Proseso sa Basis sa Matag-User - Bahin 14


Tungod sa bag-o nga mga pagbag-o sa mga katuyoan sa eksaminasyon sa sertipikasyon sa LFCS nga epektibo gikan sa Pebrero 2, 2016, gidugang namon ang kinahanglan nga mga artikulo sa serye sa LFCE usab.

Ang matag administrador sa sistema sa Linux kinahanglan mahibal-an kung giunsa ang pag-verify sa integridad ug pagkaanaa sa hardware, mga kapanguhaan, ug hinungdanon nga mga proseso. Dugang pa, ang pagtakda og mga limitasyon sa kahinguhaan sa matag user nga basehan kinahanglan usab nga kabahin sa iyang set sa kahanas.

Niining artikuloha atong tukion ang pipila ka mga paagi aron masiguro nga ang sistema sa hardware ug ang software naglihok sa husto aron malikayan ang mga potensyal nga isyu nga mahimong hinungdan sa wala damha nga downtime sa produksiyon ug pagkawala sa salapi.

Mga Estadistika sa Mga Proseso sa Pagreport sa Linux

Uban sa mpstat mahimo nimong tan-awon ang mga kalihokan alang sa matag processor nga tinagsa o ang sistema sa kinatibuk-an, pareho sa usa ka higayon nga snapshot o dinamikong.

Aron magamit kini nga himan, kinahanglan nimo nga i-install ang 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]

Basaha ang dugang bahin sa sysstat ug kini nga mga utilities sa Pagkat-on sa Sysstat ug ang mga Utility niini mpstat, pidstat, iostat ug sar sa Linux

Kung na-install na nimo ang mpstat, gamita kini aron makamugna mga taho sa mga istatistika sa mga processor.

Aron ipakita ang 3 ka global nga mga taho sa paggamit sa CPU (-u) para sa tanang CPU (sama sa gipakita sa -P ALL) sa 2 ka segundos nga agwat, buhata:

# 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

Aron matan-aw ang parehas nga estadistika alang sa usa ka piho nga CPU (CPU 0 sa mosunod nga pananglitan), gamita ang:

# 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

Ang output sa mga sugo sa ibabaw nagpakita niini nga mga kolum:

  1. CPU: Numero sa processor isip integer, o ang pulong tanan isip average para sa tanang processor.
  2. %usr: Porsiyento sa paggamit sa CPU samtang nagpadagan sa mga aplikasyon sa lebel sa user.
  3. %nice: Parehas sa %usr, apan adunay maayong prayoridad.
  4. %sys: Porsiyento sa paggamit sa CPU nga nahitabo samtang nagpatuman sa mga aplikasyon sa kernel. Kini wala maglakip sa oras nga gigugol sa pag-atubang sa mga interrupt o pagdumala sa hardware.
  5. %iowait: Porsiyento sa panahon sa dihang ang gihatag nga CPU (o tanan) walay trabaho, diin dihay resource-intensive I/O operation nga naka-iskedyul sa maong CPU. Ang mas detalyado nga katin-awan (uban ang mga pananglitan) makit-an dinhi.
  6. %irq: Porsiyento sa oras nga gigugol sa pagserbisyo sa hardware nahunong.
  7. %soft: Parehas sa %irq, apan adunay mga interrupts sa software.
  8. %steal: Porsiyento sa oras nga gigugol sa dili boluntaryong paghulat (pagkawat o gikawat nga oras) kung ang usa ka virtual nga makina, isip bisita, \nakadaog sa atensyon sa hypervisor samtang nakigkompetensya alang sa (mga) CPU . Kini nga kantidad kinahanglan nga huptan nga gamay kutob sa mahimo. Ang usa ka taas nga kantidad niini nga natad nagpasabut nga ang virtual nga makina mohunong - o sa dili madugay.
  9. %guest: Porsiyento sa oras nga gigugol sa pagpadagan sa usa ka virtual processor.
  10. %idle: porsyento sa oras kung ang (mga) CPU wala nagpatuman sa bisan unsang buluhaton. Kung naobserbahan nimo ang usa ka ubos nga kantidad sa kini nga kolum, kana usa ka timailhan sa sistema nga gibutang sa ilawom sa usa ka bug-at nga karga. Niana nga kahimtang, kinahanglan nimong tan-awon pag-ayo ang lista sa proseso, ingon nga atong hisgutan sa usa ka minuto, aron mahibal-an kung unsa ang hinungdan niini.

Aron ibutang ang dapit sa processor ubos sa medyo taas nga load, padagana ang mosunod nga mga command ug dayon i-execute ang mpstat (ingon sa gipakita) sa usa ka bulag nga terminal:

# 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

Sa katapusan, itandi sa output sa mpstat ubos sa \normal nga mga kahimtang:

Sama sa imong makita sa hulagway sa ibabaw, ang CPU 0 ubos sa bug-at nga karga atol sa unang duha ka pananglitan, ingon sa gipakita sa %idle column.

Sa sunod nga seksyon atong hisgutan kung giunsa pag-ila kini nga mga proseso nga gigutom sa kapanguhaan, kung giunsa pagkuha ang dugang nga kasayuran bahin niini, ug kung giunsa paghimo ang angay nga aksyon.

Pagreport sa mga Proseso sa Linux

Aron ilista ang mga proseso nga naghan-ay niini pinaagi sa paggamit sa CPU, among gamiton ang iladong ps nga sugo nga adunay -eo (aron mapili ang tanang proseso nga adunay format nga gitakda sa user) ug --sort (aron itudlo ang usa ka custom sorting order) nga mga opsyon, sama niini:

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

Ang sugo sa ibabaw magpakita lamang sa PID, PPID, ang sugo nga nalangkit sa proseso, ug ang porsiyento sa paggamit sa CPU ug RAM nga gihan-ay sumala sa porsiyento sa paggamit sa CPU sa paubos nga han-ay. . Kung gipatuman sa panahon sa paghimo sa .iso file, ania ang unang pipila ka linya sa output:

Kung nahibal-an na namon ang usa ka proseso sa interes (sama sa usa nga adunay PID=2822), mahimo namon nga ma-navigate sa /proc/PID (/proc/2822 sa kini nga kaso) ug paghimo usa ka lista sa direktoryo.

Kini nga direktoryo diin daghang mga file ug mga subdirektoryo nga adunay detalyado nga kasayuran bahin niining partikular nga proseso gitipigan samtang kini nagdagan.

  1. /proc/2822/io adunay IO statistics para sa proseso (gidaghanon sa mga karakter ug byte nga gibasa ug gisulat, ug uban pa, atol sa mga operasyon sa IO).
  2. /proc/2822/attr/current nagpakita sa kasamtangang SELinux nga mga hiyas sa seguridad sa proseso.
  3. /proc/2822/cgroup naghulagway sa mga kontrol nga grupo (cgroups sa mubo) diin ang proseso nahisakop kon ang CONFIG_CGROUPS kernel configuration nga opsyon gipagana, nga imong mapamatud-an gamit ang:

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

Kung ang kapilian mahimo, kinahanglan nimo nga makita:

CONFIG_CGROUPS=y

Gamit ang cgroups mahimo nimong madumala ang gidaghanon sa gitugot nga paggamit sa kapanguhaan sa matag-proseso nga basehan sama sa gipatin-aw sa Kapitulo 1 hangtod 4 sa Control Groups nga seksyon sa Ubuntu 14.04 Server nga dokumentasyon.

Ang /proc/2822/fd usa ka direktoryo nga adunay usa ka simbolo nga sumpay alang sa matag file descriptor nga giablihan sa proseso. Ang mosunod nga hulagway nagpakita niini nga impormasyon alang sa proseso nga gisugdan sa tty1 (ang unang terminal) sa paghimo sa .iso nga hulagway:

Ang hulagway sa ibabaw nagpakita nga ang stdin (file descriptor 0), stdout (file descriptor 1), ug stderr (file descriptor 2) gimapa ngadto sa /dev/zero, /root/test.iso, ug /dev/tty1, matag usa.

Dugang impormasyon bahin sa /proc makita sa \The /proc filesystem nga dokumento nga gitipigan ug gimintinar sa Kernel.org, ug sa Linux Programmer's Manual.

Pagtakda sa mga Limitasyon sa Resource sa usa ka Basis sa Per-User sa Linux

Kung dili ka mabinantayon ug tugotan ang bisan kinsa nga tiggamit nga magpadagan sa usa ka walay kinutuban nga gidaghanon sa mga proseso, mahimo nimong masinati sa katapusan ang usa ka wala damha nga pagsira sa sistema o ma-lock sa gawas samtang ang sistema mosulod sa usa ka dili magamit nga kahimtang. Aron mapugngan kini nga mahitabo, kinahanglan nimong ibutang ang usa ka limitasyon sa gidaghanon sa mga proseso nga mahimong sugdan sa mga tiggamit.

Aron mahimo kini, i-edit ang /etc/security/limits.conf ug idugang ang mosunod nga linya sa ubos sa file aron itakda ang limitasyon:

*   	hard	nproc   10

Ang unang field mahimong gamiton sa pagpaila sa usa ka user, usa ka grupo, o silang tanan (*), samtang ang ikaduhang field nagpatuman og hard limit sa gidaghanon sa proseso (nproc) ngadto sa 10. Sa i-apply ang mga pagbag-o, igo na ang pag-log out ug pagbalik.

Busa, tan-awon nato kung unsa ang mahitabo kung ang usa ka tiggamit gawas sa gamut (bisan usa ka lehitimo o dili) mosulay sa pagsugod sa usa ka shell fork bomb. Kung wala pa namo gipatuman ang mga limitasyon, kini sa sinugdanan maglunsad og duha ka mga higayon sa usa ka function, ug unya doblehon ang matag usa niini sa usa ka walay katapusan nga loop. Sa ingon, kini sa kadugayan magdala sa imong sistema sa pag-crawl.

Bisan pa, uban ang pagdili sa ibabaw sa lugar, ang fork bomb dili molampos apan ang tiggamit ma-lock gihapon hangtod nga mapatay sa tagdumala sa sistema ang proseso nga may kalabotan niini:

TIP: Ang ubang posibleng mga pagdili nga nahimong posible pinaagi sa ulimit gidokumento sa limits.conf file.

Linux Ubang Mga Gamit sa Pagdumala sa Proseso

Dugang sa mga himan nga gihisgutan kaniadto, ang usa ka tagdumala sa sistema mahimo usab nga kinahanglan:

a) Usba ang prayoridad sa pagpatuman (paggamit sa mga kapanguhaan sa sistema) sa usa ka proseso gamit ang renice. Kini nagpasabot nga ang kernel mogahin ug mas daghan o menos nga sistema sa mga kahinguhaan sa proseso base sa gi-assign nga prayoridad (usa ka numero nga kasagarang nailhan nga \niceness sa range gikan sa -20 ngadto sa 19).

Kon mas ubos ang bili, mas dako ang prayoridad sa pagpatuman. Ang mga regular nga tiggamit (gawas sa gamut) mahimo lamang nga usbon ang kanindot sa mga proseso nga ilang gipanag-iya ngadto sa mas taas nga bili (nagpasabot sa ubos nga prayoridad sa pagpatuman), samtang ang gamut mahimong mag-usab niini nga bili alang sa bisan unsang proseso, ug mahimong mopataas o mopakunhod niini.

Ang sukaranan nga syntax sa renice mao ang mosunod:

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

Kung ang argumento pagkahuman sa bag-ong kantidad sa prayoridad wala (walay sulod), kini gibutang sa PID pinaagi sa default. Niana nga kaso, ang kanindot sa proseso uban sa PID=identifier kay gibutang sa .

b) Pagbalda sa normal nga pagpatuman sa usa ka proseso kung gikinahanglan. Kini kasagarang nailhan nga \pagpatay sa proseso. Ubos sa tabon, kini nagpasabot sa pagpadala sa proseso og signal aron mahuman ang pagpatuman niini sa hustong paagi ug buhian ang bisan unsang gigamit nga mga kapanguhaan sa hapsay nga paagi.

Sa pagpatay sa usa ka proseso, gamita ang kill command sama sa mosunod:

# kill PID

Sa laing paagi, mahimo nimong gamiton ang pkill aron tapuson ang tanang proseso sa gihatag nga tag-iya (-u), o tag-iya sa grupo (-G), o bisan kadtong mga proseso nga adunay PPID sa komon nga (-P). Kini nga mga opsyon mahimong sundan sa numeric nga representasyon o ang aktwal nga ngalan isip identifier:

# pkill [options] identifier

Pananglitan,

# pkill -G 1000

mopatay sa tanang proseso nga gipanag-iya sa grupo nga adunay GID=1000.

ug,

# pkill -P 4993 

mopatay sa tanang proseso kansang PPID kay 4993.

Sa dili pa magpadagan sa usa ka pkill, maayo nga ideya nga sulayan una ang mga resulta gamit ang pgrep, tingali gamit ang -l nga kapilian ingon man sa paglista sa mga ngalan sa mga proseso. Nagkinahanglan kini og parehas nga mga kapilian apan gibalik lamang ang mga PID sa mga proseso (nga wala’y dugang nga aksyon) nga mapatay kung gigamit ang pkill.

# pgrep -l -u gacanepa

Kini gihulagway sa sunod nga hulagway:

Summary

Niini nga artikulo among gisuhid ang pipila ka mga paagi sa pagmonitor sa paggamit sa kapanguhaan aron mapamatud-an ang integridad ug pagkaanaa sa mga kritikal nga hardware ug software nga mga sangkap sa usa ka sistema sa Linux.

Nakakat-on usab kami kung unsaon paghimo sa angay nga aksyon (pinaagi sa pag-adjust sa prayoridad sa pagpatuman sa usa ka proseso o pinaagi sa pagtapos niini) ubos sa dili kasagaran nga mga kahimtang.

Kami nanghinaut nga ang mga konsepto nga gipatin-aw niini nga panudlo nakatabang. Kung naa kay mga pangutana o komento, ayaw paglangan sa pagkontak kanamo gamit ang contact form sa ubos.