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:
- Hvernig á að finna topp 15 ferla eftir minnisnotkun með „top“ í lotuham
- CPUTool – Takmarka og stjórna CPU-notkun hvers ferlis í Linux
- 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.