Hvernig á að takmarka tíma og minnisnotkun ferla í Linux


Timeout forskriftin er gagnlegt tilföng eftirlitskerfi til að takmarka tíma og minnisnotkun ferla í Linux. Það gerir þér kleift að keyra forrit undir stjórn og framfylgja tíma- og minnistakmörkunum, sem slítur forritinu ef brotið er á þessum breytum.

Engin uppsetning þarf, einfaldlega framkvæma skipun ásamt rökum hennar með því að nota timeout forrit og það mun fylgjast með minni og tímanotkun skipunarinnar, trufla ferlið ef það fer út fyrir mörkin og tilkynna þér með fyrirfram skilgreindum skilaboðum.

Til að keyra þetta handrit verður þú að hafa Perl 5 uppsett á Linux kerfinu þínu og /proc skráarkerfið tengt.

Til að athuga uppsetta útgáfu af Perl á Linux kerfinu þínu skaltu keyra eftirfarandi skipun.

$ perl -v

Næst skaltu klóna tímalokageymsluna í kerfið þitt með því að nota venjulega Linux skipun.

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

Við skulum nú líta á hvernig tímamörk virkar.

Þetta fyrsta dæmi sýnir hvernig á að takmarka minnisnotkun ferlis við 100M af sýndarminni með því að nota -m fánann. Sjálfgefin eining fyrir minni er í kílóbætum.

Hér keyrir stress-ng skipunin 4 sýndarminni streituvalda (VMS) sem sameinast til að nota 40% af tiltæku minni í 10 mínútur. Þannig notar hver streituvaldur 10% af tiltæku minni.

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

Með hliðsjón af úttakinu á tímaskilskipuninni hér að ofan, var streitu-ng starfsmannaferlum hætt eftir aðeins 1,16 sekúndur. Þetta er vegna þess að samanlögð minnisnotkun VMS (438660 kílóbæti) er meiri en leyfileg sýndarminnisnotkun fyrir streitu-ng og undirferli þess.

Til að virkja tímatakmörkun á ferli, notaðu -t fánann eins og sýnt er.

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

Í dæminu hér að ofan, þegar streitu-ng CPU+SYS tíminn fer yfir skilgreint gildi 4, drepast starfsferlarnir.

Þú getur líka takmarkað bæði minni og tíma í einu eins og hér segir.

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

Timeout styður einnig nokkra háþróaða valkosti eins og --detect-hangups, sem gerir stöðvunarskynjun kleift.

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

Þú getur fylgst með RSS-minnismörkum (resident set size) með því að nota --memlimit-rss eða -s rofann.

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

Að auki, til að skila útgöngukóða eða merki+128 ferlis, notaðu --confess eða -c valkostinn eins og sýnt er.

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

Fyrir frekari upplýsingar og notkunardæmi, sjáðu Github geymsluna fyrir tímatöku: https://github.com/pshved/timeout.

Þú gætir líka fundið þessar eftirfarandi tengdu greinar jafn gagnlegar:

  1. Hvernig á að finna topp 15 ferla eftir minnisnotkun með „top“ í lotuham
  2. CPUTool – Takmarka og stjórna CPU-notkun hvers ferlis í Linux
  3. Hvernig á að takmarka CPU-notkun á ferli í Linux með CPULimit Tool

Timeout forskriftin er einfalt eftirlitskerfi með auðlindum sem takmarkar í raun tíma- og minnisnotkun ferla í Linux. Þú getur gefið okkur athugasemdir um tímatökuforskriftina í gegnum athugasemdareyðublaðið hér að neðan.