Website-Suche

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.

  1. Finden Sie die am häufigsten ausgeführten Prozesse nach höchster Speicher- und CPU-Auslastung unter Linux
  2. Cpustat – Überwacht die CPU-Auslastung durch die Ausführung von Prozessen unter Linux
  3. CoreFreq – Ein leistungsstarkes CPU-Überwachungstool für Linux-Systeme
  4. Finden Sie die am häufigsten ausgeführten Prozesse nach höchster Speicher- und CPU-Auslastung unter Linux
  5. 20 Befehlszeilentools zur Überwachung der Linux-Leistung
  6. 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.