Kako ograničiti vrijeme i korištenje memorije procesa u Linuxu
Skripta timeout je koristan program za praćenje resursa za ograničavanje vremena i potrošnje memorije procesa u Linuxu. Omogućava vam da pokrenete programe pod kontrolom i nametnete ograničenja vremena i memorije, prekidajući program nakon kršenja ovih parametara.
Nije potrebna instalacija, jednostavno izvršite naredbu zajedno sa njenim argumentima koristeći program timeout i on će nadgledati 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 sistemu i montiran /proc sistem datoteka.
Da provjerite instaliranu verziju Perl na vašem Linux sistemu, pokrenite sljedeću naredbu.
perl -v
Zatim, klonirajte spremište timeout na vaš sistem pomoću naredbe git, a zatim pređite u lokalno spremište koristeći cd komandu i pozovite ga kao uobičajenu Linux naredbu.
cd ~/bin
git clone https://github.com/pshved/timeout.git
cd timeout
Pogledajmo sada kako funkcionira skripta timeout.
Osnovno ograničenje memorije (100M virtuelne memorije):
Ovaj prvi primjer pokazuje kako ograničiti upotrebu memorije procesa na 100M virtuelne memorije, koristeći zastavu -m
. Zadana jedinica za memoriju je u kilobajtima.
Ovdje komanda stress-ng pokreće 4 stresora virtuelne memorije (VMS) koji se kombinuju da koriste 40% dostupne memorije 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čki procesi stress-ng su prekinuti nakon samo 1,16 sekundi. To je zato što je kombinovana potrošnja memorije VMS-a (438660 kilobajta) veća od dozvoljene upotrebe virtuelne memorije za stress-ng i njegovo dijete procesi.
Osnovno vremensko ograničenje procesa:
Da omogućite vremensko ograničenje procesa, koristite 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 od 4, radni procesi se ubijaju.
Ograničavanje vremena i memorije procesa
Također možete ograničiti i memoriju i vrijeme odjednom na sljedeći način.
./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
, što omogućava otkrivanje prekida.
./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
Možete pratiti ograničenje memorije za RSS (stalnu veličinu) pomoću prekidača --memlimit-rss
ili -s
.
./timeout -m 100000 -s stress-ng --vm 4 --vm-bytes 40% -t 10m
Dodatno, da biste vratili izlazni kod ili signal+128 procesa, koristite opciju --priznati
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 spremište: https://github.com/pshved/timeout.
Ovi sljedeći srodni članci također bi vam mogli biti podjednako korisni:
- Kako pronaći top 15 procesa prema korištenju memorije s 'top' u batch modu
- CPUTool – Ograničite i kontrolirajte korištenje CPU-a bilo kojeg procesa u Linuxu
- Kako ograničiti korištenje CPU-a procesa u Linuxu pomoću alata CPULimit
Skripta timeout je jednostavan program za praćenje resursa koji u suštini ograničava potrošnju vremena i memorije procesa u Linuxu. Možete nam dati povratne informacije o skripti timeout putem obrasca za komentare ispod.