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:

  1. Kako najti 15 najboljših procesov glede na uporabo pomnilnika z „top“ v paketnem načinu
  2. CPUTool - Omejitev in nadzor nad uporabo CPU-ja katerega koli procesa v Linuxu
  3. 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.