Kaip apriboti „Linux“ procesų laiką ir atmintį


Skirtojo laiko scenarijus yra naudinga išteklių stebėjimo programa, skirta apriboti „Linux“ procesų laiką ir atminties sąnaudas. Tai leidžia jums paleisti programas kontroliuojant ir vykdyti laiko ir atminties apribojimus, nutraukiant programą pažeidus šiuos parametrus.

Nereikia diegti, tiesiog vykdykite komandą kartu su jos argumentais naudodamiesi skirtojo laiko programa. Ji stebės komandos atmintį ir laiko sąnaudas, nutraukdama procesą, jei ji išeis iš ribų, ir informuos jus iš anksto nustatytu pranešimu.

Norėdami paleisti šį scenarijų, „Linux“ sistemoje turite būti įdiegę „Perl 5“, o/proc failų sistemą.

Norėdami patikrinti įdiegtą „Perl“ versiją „Linux“ sistemoje, vykdykite šią komandą.

$ perl -v

Tada klonuokite skirtojo laiko saugyklą į savo sistemą naudodami įprastą „Linux“ komandą.

$ cd ~/bin
$ git clone https://github.com/pshved/timeout.git
$ cd timeout

Dabar pažiūrėkime, kaip veikia skirtojo laiko scenarijus.

Šis pirmasis pavyzdys parodo, kaip apriboti proceso atminties naudojimą iki 100 mln. Virtualiosios atminties, naudojant žymę -m . Numatytasis atminties vienetas yra kilobaitais.

Čia komanda „stress-ng“ paleidžia 4 virtualios atminties stresorius (VMS), kurie kartu naudoja 40% turimos atminties 10 minučių. Taigi kiekvienas stresorius naudoja 10% laisvos atminties.

$ ./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Atsižvelgiant į aukščiau nurodyto skirtojo laiko komandos išvestį, streso ng darbuotojo procesai buvo nutraukti vos po 1,16 sekundės. Taip yra dėl to, kad bendras LSS (438660 kilobaitų) atminties suvartojimas yra didesnis nei leidžiamas virtualiosios atminties naudojimas stresui-ng ir jo antriniams procesams.

Norėdami įjungti laiko apribojimą, naudokite -t vėliavą, kaip parodyta.

$ ./timeout -t 4 stress-ng --vm 4 --vm-bytes 40% -t 10m

Ankstesniame pavyzdyje, kai streso-ng procesoriaus + SYS laikas viršija nustatytą 4 reikšmę, darbuotojo procesai žudomi.

Taip pat galite vienu metu apriboti ir atmintį, ir laiką taip.

$ ./timeout -t 4 -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

„Timeout“ taip pat palaiko kai kurias išplėstines parinktis, tokias kaip --detect-hangups , kuri įgalina aptikti „Hangup“.

$ ./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

RSS (gyventojo nustatyto dydžio) atminties limitą galite stebėti naudodami jungiklį --memlimit-rss arba -s .

$ ./timeout -m 100000 -s  stress-ng --vm 4 --vm-bytes 40% -t 10m

Be to, norėdami grąžinti proceso išėjimo kodą arba signalą + 128, naudokite parinktį --confess arba -c , kaip parodyta.

$ ./timeout -m 100000 -c  stress-ng --vm 4 --vm-bytes 40% -t 10m

Norėdami gauti daugiau informacijos ir naudojimo pavyzdį, žr. Skirtąjį „Github“ saugyklą: https://github.com/pshved/timeout.

Šie panašūs straipsniai taip pat gali būti naudingi:

  1. Kaip rasti 15 geriausių procesų pagal atmintį naudojant „top“ paketiniu režimu
  2. „CPUTool“ - apribokite ir valdykite procesoriaus naudojimą bet kuriame „Linux“ procese
  3. Kaip apriboti procesoriaus naudojimą sistemoje „Linux“ naudojant „CPULimit“ įrankį

Skirtojo laiko scenarijus yra paprasta išteklių stebėjimo programa, iš esmės ribojanti procesų laiką ir atmintį „Linux“. Galite pateikti atsiliepimų apie skirtojo laiko scenarijų naudodami toliau pateiktą komentaro formą.