Wéi Limitéiert Zäit a Gedächtnisverbrauch vu Prozesser am Linux


Den Timeout-Skript ass en nëtzlecht Ressource-Iwwerwaachungsprogramm fir Zäit an Erënnerungsverbrauch vu Prozesser am Linux ze limitéieren. Et erlaabt Iech Programmer ënner Kontroll ze lafen, an Zäit- a Gedächtnislimiten ëmzesetzen, de Programm ofzeschléissen op Violatioun vun dëse Parameteren.

Keng Installatioun néideg, fuert einfach e Kommando zesumme mat sengen Argumenter mat engem Timeout Programm aus an et wäert d'Erënnerung an d'Zäitverbrauch vum Kommando iwwerwaachen, de Prozess ënnerbrach wann et aus de Grenzen geet an Iech mat der virdefinéierter Noriicht informéiert.

Fir dëst Skript auszeféieren, musst Dir Perl 5 op Ärem Linux System installéiert hunn an de/proc Dateiesystem montéiert.

Fir déi installéiert Versioun vu Perl op Ärem Linux System ze kontrolléieren, fuert de folgende Kommando.

$ perl -v

Als nächst klon de Timeout-Repository op Äre System mat normale Linux Kommando.

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

Loosst eis elo kucken wéi den Timeout Skript funktionnéiert.

Dëst éischt Beispill weist wéi d'Erënnerungsverbrauch vun engem Prozess op 100M virtuell Erënnerung limitéiert gëtt, andeems Dir de -m Fändel benotzt. D'Standard Eenheet fir Erënnerung ass a Kilobytes.

Hei leeft de Stress-ng Kommando 4 virtuell Gedächtnisstressoren (VMS) déi kombinéiere fir 40% vun der verfügbarer Erënnerung fir 10 Minutten ze benotzen. Also benotzt all Stressor 10% vun der verfügbarer Erënnerung.

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

Bedenkt datt d'Ausgab vum Timeout Kommando uewendriwwer, d'Stress-ng Aarbechterprozesser goufen no just 1,16 Sekonnen ofgeschloss. Dëst ass well de kombinéierte Gedächtnisverbrauch vum VMS (438660 kilobytes) méi grouss ass wéi déi zulässlech virtuell Erënnerungsverbrauch fir Stress-ng a seng Kandprozesser.

Fir d'Zäitlimitatioun vum Prozess z'aktivéieren, benotzt de -t Fändel wéi gewisen.

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

Am uewe genannte Beispill, wann d'Stress-ng CPU + SYS Zäit den definéierte Wäert vu 4 iwwerschreift, ginn d'Aarbechterprozesser ëmbruecht.

Dir kënnt och Erënnerung an Zäit op eemol limitéieren wéi follegt.

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

Timeout ënnerstëtzt och e puer fortgeschratt Optiounen wéi --detect-hangups, wat d'Handup-Detektioun erméiglecht.

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

Dir kënnt d'RSS (Resident Set Gréisst) Memory Limit iwwerwaachen andeems Dir den --memlimit-rss oder -s Schalter benotzt.

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

Zousätzlech, fir den Ausgangscode oder Signal +128 vun engem Prozess zréckzekommen, benotzt d'Optioun --confess oder -c wéi gewisen.

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

Fir méi Informatioun a Benotzungsbeispill, kuckt den Timeout Github Repository: https://github.com/pshved/timeout.

Dir kënnt och dës folgend verbonne Artikelen gläich nëtzlech fannen:

  1. Wéi fannt Dir Top 15 Prozesser duerch Erënnerungsverbrauch mat 'Top' am Batch-Modus
  2. CPUTool - Limitéiert a Kontroll CPU Utilisatioun vun all Prozess am Linux
  3. Wéi Limitéiert d'CPU Notzung vun engem Prozess am Linux mam CPULimit Tool

Den Timeout Skript ass en einfache Ressource Iwwerwaachungsprogramm deen am Wesentlechen d'Zäit an d'Erënnerungsverbrauch vu Prozesser am Linux beschränkt. Dir kënnt eis Feedback iwwer den Timeout Skript iwwer de Kommentarformular hei drënner ginn.