Kako ograničiti vrijeme i korištenje memorije procesa u Linuxu
Skripta timeout koristan je program za nadzor resursa za ograničavanje vremena i potrošnje memorije procesa u Linuxu. Omogućuje vam pokretanje programa pod kontrolom i nametanje vremenskih i memorijskih ograničenja, prekidanje programa nakon kršenja ovih parametara.
Nije potrebna instalacija, jednostavno izvršite naredbu zajedno s njezinim argumentima pomoću programa timeout i on će nadzirati memoriju naredbe i potrošnju vremena, prekidajući proces ako izađe iz ograničenja i obavijestit će vas unaprijed definiranim poruka.
Da biste pokrenuli ovu skriptu, morate imati Perl 5 instaliran na vašem Linux sustavu i /proc datotečni sustav montiran.
Za provjeru instalirane verzije Perl-a na vašem Linux sustavu, pokrenite sljedeću naredbu.
perl -v
Zatim klonirajte repozitorij timeout u svoj sustav pomoću naredbe git, zatim prijeđite u lokalni repozitorij pomoću naredbe cd i pozovite ga kao uobičajenu Linux naredbu.
cd ~/bin
git clone https://github.com/pshved/timeout.git
cd timeout
Pogledajmo sada kako radi skripta timeout.
Osnovno ograničenje memorije (100M virtualne memorije):
Ovaj prvi primjer pokazuje kako ograničiti korištenje memorije procesa na 100M virtualne memorije, koristeći oznaku -m
. Zadana jedinica za memoriju je u kilobajtima.
Ovdje naredba stress-ng pokreće 4 stresora virtualne memorije (VMS) koji zajedno koriste 40% dostupne memorije tijekom 10 minuta. Stoga svaki stresor koristi 10% dostupne memorije.
./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
Uzimajući u obzir izlaz gornje naredbe timeout, radni procesi stress-ng prekinuti su nakon samo 1,16 sekundi. To je zato što je kombinirana potrošnja memorije VMS-a (438660 kilobajta) veća od dopuštene upotrebe virtualne memorije za stress-ng i njegovo dijete procesima.
Osnovno vremensko ograničenje procesa:
Kako biste omogućili vremensko ograničenje procesa, upotrijebite oznaku -t
kao što je prikazano.
./timeout -t 4 stress-ng --vm 4 --vm-bytes 40% -t 10m
U gornjem primjeru, kada vrijeme stress-ng CPU+SYS premaši definiranu vrijednost 4, radni procesi se ukidaju.
Ograničavanje vremena i memorije procesa
Također možete ograničiti i memoriju i vrijeme odjednom kako slijedi.
./timeout -t 4 -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
Timeout također podržava neke napredne opcije kao što je --detect-hangups
, koja omogućuje otkrivanje prekida veze.
./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
Možete nadzirati ograničenje memorije RSS (rezident set size) pomoću prekidača --memlimit-rss
ili -s
.
./timeout -m 100000 -s stress-ng --vm 4 --vm-bytes 40% -t 10m
Osim toga, da biste vratili izlazni kod ili signal+128 procesa, koristite opciju --confess
ili -c
kao što je prikazano.
./timeout -m 100000 -c stress-ng --vm 4 --vm-bytes 40% -t 10m
Za više informacija i primjer korištenja pogledajte timeout Github repozitorij: https://github.com/pshved/timeout.
Sljedeći povezani članci mogli bi vam također biti jednako korisni:
- Kako pronaći 15 najboljih procesa prema korištenju memorije s 'top' u skupnom načinu rada
- CPUTool – Ograničite i kontrolirajte korištenje CPU-a bilo kojeg procesa u Linuxu
- Kako ograničiti korištenje CPU-a za proces u Linuxu pomoću alata CPULimit
Skripta timeout jednostavan je program za nadzor resursa koji u osnovi ograničava potrošnju vremena i memorije procesa u Linuxu. Možete nam poslati povratne informacije o skripti timeout putem donjeg obrasca za komentare.