Das Timeout-Skript ist ein nützliches Ressourcenüberwachungsprogramm zur Begrenzung von Zeit- und Speicherverbrauch von Prozessen in Linux. Es ermöglicht Ihnen, Programme unter Kontrolle auszuführen und Zeit- und Speichergrenzen durchzusetzen, wobei das Programm bei Verletzung dieser Parameter beendet wird.
Keine Installation erforderlich, führen Sie einfach einen Befehl zusammen mit seinen Argumenten unter Verwendung des Timeout-Programms aus, und es überwacht den Speicher- und Zeitverbrauch des Befehls, unterbricht den Prozess, wenn er die Grenzen überschreitet, und benachrichtigt Sie mit der vordefinierten Nachricht.
Um dieses Skript auszuführen, müssen Sie Perl 5 auf Ihrem Linux-System installiert haben und das /proc-Dateisystem eingehängt haben.
Um die installierte Version von Perl auf Ihrem Linux-System zu überprüfen, führen Sie den folgenden Befehl aus.
$ perl -v

Anschließend klonen Sie das Timeout-Repository auf Ihrem System mit dem Git-Befehl, wechseln dann in das lokale Repository mit dem cd-Befehl und rufen es als üblichen Linux-Befehl auf.
$ cd ~/bin $ git clone https://github.com/pshved/timeout.git $ cd timeout
Lassen Sie uns nun betrachten, wie das Timeout-Skript funktioniert.
Grundlegende Speicherbegrenzung (100M virtueller Speicher):
Dieses erste Beispiel zeigt, wie der Speicherverbrauch eines Prozesses auf 100M virtuellen Speicher begrenzt wird, indem das -m
Flag verwendet wird. Die Standardeinheit für Speicher ist in Kilobytes.
Hier führt der stress-ng-Befehl 4 virtuelle Speicher-Stressoren (VMS) aus, die zusammen 40% des verfügbaren Speichers für 10 Minuten verwenden. Jeder Stressor verbraucht somit 10% des verfügbaren Speichers.
$ ./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Angesichts der Ausgabe des oben stehenden Timeout-Befehls wurden die stress-ng-Arbeitsprozesse nach nur 1,16 Sekunden beendet. Dies liegt daran, dass der zusammengefasste Speicherverbrauch der VMS (438660 Kilobytes) größer ist als die erlaubte virtuelle Speicherauslastung für stress-ng und seine untergeordneten Prozesse.
Grundlegende Begrenzung der Prozesszeit:
Um die Zeitbegrenzung von Prozessen zu aktivieren, verwenden Sie das -t
Flag wie gezeigt.
$ ./timeout -t 4 stress-ng --vm 4 --vm-bytes 40% -t 10m

Im obigen Beispiel werden die Arbeitsprozesse des stress-ng beim Überschreiten des definierten Werts von 4 CPU+SYS Zeit getötet.
Begrenzung sowohl von Zeit als auch Speicher eines Prozesses
Sie können auch beide Speicher und Zeit gleichzeitig begrenzen, wie folgt.
$ ./timeout -t 4 -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
Timeout unterstützt auch einige erweiterte Optionen wie --detect-hangups
, die die Hangup-Erkennung ermöglicht.
$ ./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
Sie können das RSS (Resident Set Size) Speicherlimit mit dem Schalter --memlimit-rss
oder -s
überwachen.
$ ./timeout -m 100000 -s stress-ng --vm 4 --vm-bytes 40% -t 10m
Zusätzlich können Sie den Exit-Code oder das Signal+128 eines Prozesses mit der Option --confess
oder -c
zurückgeben.
$ ./timeout -m 100000 -c stress-ng --vm 4 --vm-bytes 40% -t 10m
Weitere Informationen und Beispiele zur Verwendung finden Sie im timeout Github-Repository: https://github.com/pshved/timeout.
Sie finden möglicherweise auch die folgenden verwandten Artikel ebenso nützlich:
- Wie man die Top 15 Prozesse nach Speicherauslastung mit ‚top‘ im Batch-Modus findet
- CPUTool – Begrenzen und Steuern der CPU-Auslastung eines beliebigen Prozesses in Linux
- Wie man die CPU-Auslastung eines Prozesses in Linux mit dem CPULimit Tool begrenzt
Das timeout Skript ist ein einfaches Ressourcenüberwachungsprogramm, das im Wesentlichen die Zeit- und Speicherauslastung von Prozessen in Linux einschränkt. Sie können uns Feedback zum timeout Skript über das Kommentarformular unten geben.
Source:
https://www.tecmint.com/limit-time-and-memory-usage-of-linux-process/