Begrenzen Sie die CPU-Auslastung eines Prozesses unter Linux mit dem CPULimit Tool
In einem früheren Beitrag haben wir CPUTool zur Begrenzung und Steuerung der CPU-Auslastung aller Prozesse unter Linux erklärt. Es ermöglicht einem Systemadministrator, die Ausführung eines Prozesses (oder einer Prozessgruppe) zu unterbrechen, wenn die CPU-/Systemlast einen definierten Schwellenwert überschreitet. Hier lernen wir, wie man ein ähnliches Tool namens cpulimit verwendet.
Cpulimit wird verwendet, um die CPU-Nutzung eines Prozesses auf die gleiche Weise wie CPUTool einzuschränken, bietet jedoch im Vergleich zu seinem Gegenstück mehr Nutzungsoptionen. Ein wichtiger Unterschied besteht darin, dass cpulimit im Gegensatz zu cputool die Systemlast nicht verwaltet.
Empfohlene Lektüre: 9 nützliche Befehle zum Abrufen von CPU-Informationen unter Linux
Installieren Sie CPULimit, um die CPU-Auslastung eines Prozesses unter Linux zu begrenzen
CPULimit kann mithilfe eines Paketverwaltungstools aus Standard-Software-Repositorys von Debian/Ubuntu und seinen Derivaten installiert werden.
sudo apt install cpulimit
In RHEL/CentOS und Fedora müssen Sie zuerst das EPEL-Repository aktivieren und dann cpulimit wie gezeigt installieren.
# lecker, installiere epel-release
# lecker, installiere cpulimit
Begrenzung der Prozess-CPU-Auslastung mit CUPLimit
In diesem Unterabschnitt erklären wir, wie cpulimit funktioniert. Lassen Sie uns zunächst einen Befehl ausführen (derselbe dd-Befehl, den wir uns bei cputool angesehen haben), der zu einem hohen CPU-Prozentsatz im Hintergrund führen sollte (beachten Sie, dass die Prozess-PID nach der Ausführung des Befehls ausgedruckt wird). .
dd if=/dev/zero of=/dev/null &
[1] 17918
Als Nächstes können wir die Top- oder Looks-Tools verwenden, die den tatsächlichen häufig aktualisierten Status eines laufenden Linux-Systems ausgeben, um die CPU-Auslastung des obigen Befehls zu überwachen.
top
Wenn wir uns die Ausgabe oben ansehen, können wir sehen, dass der dd-Prozess den höchsten Prozentsatz der CPU-Zeit beansprucht 100,0 %.
Aber wir können dies mit cputlimit wie folgt einschränken. Die Option --pid
oder -p
wird verwendet, um die PID und --limit
oder -l
anzugeben Wird verwendet, um einen Nutzungsprozentsatz für einen Prozess festzulegen.
Der folgende Befehl begrenzt den dd-Befehl (PID 17918) auf 50 % Nutzung eines CPU-Kerns.
sudo cpulimit --pid 17918 --limit 50
Process 17918 detected
Sobald wir cpulimit ausführen, können wir die aktuelle CPU-Auslastung für den dd-Befehl mit „top“ oder „glaces“ anzeigen. Der Ausgabe zufolge liegt der Wert zwischen (51,5 % und 55,0 % oder etwas darüber).
Wir können die CPU-Auslastung ein zweites Mal wie folgt drosseln und dieses Mal den Prozentsatz wie folgt weiter senken:
sudo cpulimit --pid 17918 --limit 20
Process 17918 detected
Wie zuvor können wir „Top“ oder „Glicks“ ausführen, um die neue CPU-Auslastung für den Prozess anzuzeigen, die zwischen 20 % und 25,0 % oder etwas darüber liegen wird.
top
Hinweis: Die Shell wird nicht mehr interaktiv – erwartet keine Benutzereingaben, wenn cpulimit ausgeführt wird. Um es zu beenden (wodurch die CPU-Nutzungsbeschränkung gestoppt werden sollte), drücken Sie [Strg + C]
.
Um cpulimit als Hintergrundprozess auszuführen, verwenden Sie den Schalter --background
oder -b
, um das Terminal freizugeben.
sudo cpulimit --pid 17918 --limit 20 --background
Um die Anzahl der im System vorhandenen CPU-Kerne anzugeben, verwenden Sie das Flag --cpu
oder -c
(dies wird normalerweise automatisch erkannt).
sudo cpulimit --pid 17918 --limit 20 --cpu 4
Anstatt die CPU-Auslastung eines Prozesses zu begrenzen, können wir ihn mit der Option --kill
oder -k
beenden. Das an den Prozess gesendete Standardsignal ist SIGCONT, aber um ein anderes Signal zu senden, verwenden Sie das Flag --signal
oder -s
.
sudo cpulimit --pid 17918 --limit 20 --kill
Um den Vorgang zu beenden, wenn kein geeigneter Zielprozess vorhanden ist oder er abstürzt, fügen Sie -z
oder --lazy
wie folgt ein.
sudo cpulimit --pid 17918 --limit 20 --kill --lazy
Weitere Informationen und Verwendungsoptionen finden Sie auf der Manpage zu cpulimit.
man cpulimit
Sehen Sie sich die folgenden nützlichen Anleitungen zum Auffinden von CPU-Informationen und zur Überwachung der CPU-/Systemleistung an.
- Finden Sie die am häufigsten ausgeführten Prozesse nach höchster Speicher- und CPU-Auslastung unter Linux
- Cpustat – Überwacht die CPU-Auslastung durch die Ausführung von Prozessen unter Linux
- CoreFreq – Ein leistungsstarkes CPU-Überwachungstool für Linux-Systeme
- Finden Sie die am häufigsten ausgeführten Prozesse nach höchster Speicher- und CPU-Auslastung unter Linux
- 20 Befehlszeilentools zur Überwachung der Linux-Leistung
- 13 Linux-Leistungsüberwachungstools – Teil 2
Im Vergleich dazu stellten wir nach dem Testen von CPUTool und CPULimit fest, dass ersteres eine effektivere und zuverlässigere Funktionalität zur „Beschränkung der CPU-Nutzung von Prozessen“ bietet.
Dies entspricht dem prozentualen Bereich der CPU-Auslastung, der nach der Ausführung beider Tools für einen bestimmten Prozess beobachtet wurde. Probieren Sie beide Tools aus und fügen Sie über das untenstehende Feedback-Formular Ihre Gedanken zu diesem Artikel hinzu.