Giunsa ang Limitahan ang Oras ug Paggamit sa Memorya sa mga Proseso sa Linux


Ang timeout nga script usa ka mapuslanon nga programa sa pagmonitor sa kapanguhaan alang sa paglimit sa oras ug pagkonsumo sa memorya sa mga proseso sa Linux. Gitugotan ka niini nga modagan ang mga programa nga kontrolado, ug ipatuman ang mga limitasyon sa oras ug memorya, pagtapos sa programa sa paglapas sa kini nga mga parameter.

Wala’y kinahanglan nga pag-install, ipatuman lang ang usa ka mando kauban ang mga argumento niini gamit ang timeout nga programa ug kini mag-monitor sa panumduman sa mando ug pagkonsumo sa oras, makabalda sa proseso kung kini mogawas sa mga limitasyon, ug ipahibalo kanimo ang gitakda nang daan nga mensahe.

Aron mapadagan kini nga script, kinahanglan nimo nga i-install ang Perl 5 sa imong Linux system ug ang/proc filesystem nga gi-mount.

Aron masusi ang na-install nga bersyon sa Perl sa imong Linux system, padagana ang mosunod nga sugo.

$ perl -v

Sunod, i-clone ang timeout repository sa imong sistema gamit ang naandan nga Linux command.

$ cd ~/bin
$ git clone https://github.com/pshved/timeout.git
$ cd timeout

Atong tan-awon kung giunsa paglihok ang script sa timeout.

Kining unang pananglitan nagpakita kon unsaon paglimite ang paggamit sa memorya sa usa ka proseso ngadto sa 100M nga virtual memory, gamit ang -m flag. Ang default nga yunit alang sa memorya kay sa kilobytes.

Dinhi, ang stress-ng command nagpadagan sa 4 virtual memory stressors (VMS) nga naghiusa aron magamit ang 40% sa magamit nga memorya sa 10 minuto. Busa ang matag stressor naggamit sa 10% sa anaa nga memorya.

$ ./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Sa pagkonsiderar sa output sa timeout command sa ibabaw, ang stress-ng mga proseso sa mamumuo gihunong human lang sa 1.16 segundos. Kini tungod kay ang hiniusang konsumo sa panumduman sa VMS (438660 kilobytes) mas dako kay sa gitugot nga paggamit sa virtual memory alang sa stress-ng ug sa mga proseso sa bata niini.

Aron mahimo ang paglimite sa oras sa proseso, gamita ang -t nga bandera sama sa gipakita.

$ ./timeout -t 4 stress-ng --vm 4 --vm-bytes 40% -t 10m

Sa pananglitan sa ibabaw, kung ang stress-ng CPU + SYS nga oras molapas sa gitakda nga kantidad nga 4, ang mga proseso sa trabahante gipatay.

Mahimo usab nimo nga limitahan ang memorya ug oras sa usa ka higayon sama sa mosunod.

$ ./timeout -t 4 -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Gisuportahan usab sa timeout ang pipila ka mga advanced nga kapilian sama sa --detect-hangups, nga makapahimo sa pag-detect sa hangup.

$ ./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Mahimo nimong bantayan ang limitasyon sa memorya sa RSS (resident set size) gamit ang --memlimit-rss o -s switch.

$ ./timeout -m 100000 -s  stress-ng --vm 4 --vm-bytes 40% -t 10m

Dugang pa, aron ibalik ang exit code o signal+128 sa usa ka proseso, gamita ang --confess o -c nga opsyon sama sa gipakita.

$ ./timeout -m 100000 -c  stress-ng --vm 4 --vm-bytes 40% -t 10m

Para sa dugang nga impormasyon ug pananglitan sa paggamit, tan-awa ang timeout Github repository: https://github.com/pshved/timeout.

Mahimo usab nimo nga makit-an kining mosunod nga mga may kalabutan nga mga artikulo nga parehas nga mapuslanon:

  1. Unsaon Pangitaa ang Top 15 nga Proseso pinaagi sa Paggamit sa Memorya gamit ang 'top' sa Batch Mode
  2. CPUTool – Limitahan ug Kontrola ang Paggamit sa CPU sa Bisan unsang Proseso sa Linux
  3. Unsaon Limitahan ang Paggamit sa CPU sa Proseso sa Linux gamit ang CPULimit Tool

Ang timeout nga script usa ka yano nga programa sa pag-monitor sa kapanguhaan nga hinungdanon nga nagpugong sa oras ug pagkonsumo sa memorya sa mga proseso sa Linux. Makahatag ka kanamo og feedback bahin sa timeout nga script pinaagi sa comment form sa ubos.