Kako omejiti uporabo časa in pomnilnika procesov v Linuxu
Skript časovne omejitve je koristen program za spremljanje virov za omejevanje časa in porabe pomnilnika procesov v Linuxu. Omogoča vam zagon programov pod nadzorom ter uveljavitev časovnih in pomnilniških omejitev ter program prekine ob kršitvi teh parametrov.
Namestitev ni potrebna, preprosto izvedite ukaz skupaj z njegovimi argumenti s pomočjo programa za časovno omejitev in sledil bo pomnilniku in porabi časa, prekinil postopek, če bo presegel omejitve, in vas obvestil z vnaprej določenim sporočilom.
Če želite zagnati ta skript, morate imeti v sistemu Linux nameščen Perl 5 in namestiti datotečni sistem/proc.
Če želite preveriti nameščeno različico Perla v sistemu Linux, zaženite naslednji ukaz.
$ perl -v
Nato z običajnim ukazom Linux klonirajte repozitorij časovne omejitve v svoj sistem.
$ cd ~/bin $ git clone https://github.com/pshved/timeout.git $ cd timeout
Poglejmo zdaj, kako deluje skript za časovno omejitev.
Ta prvi primer prikazuje, kako omejiti uporabo pomnilnika procesa na 100 milijonov navideznega pomnilnika z uporabo zastavice -m
. Privzeta enota za pomnilnik je v kilobajtih.
Tu ukaz stres-ng zažene 4 stresorje navideznega pomnilnika (VMS), ki skupaj 10 minut porabijo 40% razpoložljivega pomnilnika. Tako vsak stresor porabi 10% razpoložljivega pomnilnika.
$ ./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
Ob upoštevanju izhoda zgornjega ukaza za časovno omejitev so bili procesi stres-ng delavcev zaključeni po samo 1,16 sekundah. To je zato, ker je skupna poraba pomnilnika VMS (438660 kilobajtov) večja od dovoljene uporabe navideznega pomnilnika za stres-ng in njegove podrejene procese.
Če želite omogočiti časovno omejitev postopka, uporabite zastavico -t
, kot je prikazano.
$ ./timeout -t 4 stress-ng --vm 4 --vm-bytes 40% -t 10m
V zgornjem primeru, ko stres-ng CPU + SYS čas preseže definirano vrednost 4, se delovni procesi ubijejo.
Prav tako lahko hkrati omejite pomnilnik in čas, kot sledi.
$ ./timeout -t 4 -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
Časovna omejitev podpira tudi nekatere napredne možnosti, kot je --detect-hangups
, ki omogoča zaznavanje prekinitve.
$ ./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
Omejitev pomnilnika RSS (velikost nastavljene velikosti) lahko nadzirate s stikalom --memlimit-rss
ali -s
.
$ ./timeout -m 100000 -s stress-ng --vm 4 --vm-bytes 40% -t 10m
Poleg tega za vrnitev izhodne kode ali signala + 128 postopka uporabite možnost --confess
ali -c
, kot je prikazano.
$ ./timeout -m 100000 -c stress-ng --vm 4 --vm-bytes 40% -t 10m
Za več informacij in primer uporabe glejte repozitorij Github timeout: https://github.com/pshved/timeout.
Morda se vam bodo zdeli enako koristni tudi naslednji članki:
- Kako najti 15 najboljših procesov glede na uporabo pomnilnika z „top“ v paketnem načinu
- CPUTool - Omejitev in nadzor nad uporabo CPU-ja katerega koli procesa v Linuxu
- Kako omejiti uporabo procesorja v Linuxu z orodjem CPULimit
Skript časovne omejitve je preprost program za spremljanje virov, ki v bistvu omejuje čas in porabo pomnilnika procesov v Linuxu. Na spodnjem obrazcu za komentar nam lahko pošljete povratne informacije o skriptu za časovno omejitev.