Website-Suche

CPUTool - Begrenzen und Steuern der CPU-Auslastung beliebiger Prozesse in Linux


Einer der kritischen Bereiche bei der Linux-Leistungsüberwachung muss die CPU-Auslastung und die Systemlast sein. Es gibt mehrere Linux-Performance-Monitoring-Tools, mit denen Sie im Auge behalten können, wie sich die Dinge auf einem System entwickeln.

Einige dieser Tools geben einfach den Systemstatus/die Statistik aus, während einige andere Ihnen die Möglichkeit bieten, die Systemleistung zu verwalten. Eines dieser Tools heißt CPUTool.

CPUTool ist ein einfaches, aber leistungsstarkes Befehlszeilentool zum Begrenzen und Steuern der CPU-Auslastung eines Prozesses auf ein bestimmtes Limit und ermöglicht die Unterbrechung der Prozessausführung, wenn die Systemlast einen definierten Schwellenwert überschreitet.

Wie funktioniert CPUTool?

Um die CPU-Auslastung zu begrenzen, sendet cputool die Signale SIGSTOP und SIGCONT an Prozesse, die durch die Systemlast bestimmt werden. Es verlässt sich auf das Pseudo-Dateisystem /proc, um PIDs und ihre CPU-Auslastungsmaße zu lesen.

Es kann verwendet werden, um die CPU-Auslastung oder die Systemlast, die von einem einzelnen Prozess oder einer Gruppe von Prozessen beeinflusst wird, auf einen bestimmten Grenzwert zu begrenzen und/oder Prozesse anzuhalten, wenn die Systemlast einen Schwellenwert überschreitet.

Empfohlene Lektüre: Verstehen Sie die durchschnittlichen Linux-Lasten und überwachen Sie die Leistung von Linux

Installieren Sie CPUTool, um die CPU-Auslastung und die durchschnittliche Auslastung zu begrenzen

Ein CPUTool kann nur unter Debian/Ubuntu und seinen Derivaten aus den Standard-System-Repositories mit dem Paketverwaltungstool installiert werden.

$ sudo apt install cputool

Begrenzung der CPU-Auslastung von Prozessen mit CUPTool

Schauen wir uns nun an, wie cputool wirklich funktioniert. Um das Ganze zu demonstrieren, führen wir einen dd-Befehl aus, der zu einem hohen CPU-Prozentsatz führen sollte, im Hintergrund und zeigen seine PID an.

# dd if=/dev/zero of=/dev/null &

Um die CPU-Auslastung zu überwachen, können wir die Top- oder Glances-Tools verwenden, die es uns ermöglichen, den regelmäßig aktualisierten Zustand eines laufenden Linux-Systemprozesses in Echtzeit anzuzeigen:

# top

Aus der obigen Ausgabe können wir sehen, dass der Befehl dd den höchsten Prozentsatz der CPU-Zeit hat 99.7%) Jetzt können wir dies mit cputool einschränken, wie unten gezeigt.

Das Flag --cpu-limit oder -c wird verwendet, um einen Nutzungsprozentsatz für einen Prozess oder eine Gruppe von Prozessen festzulegen, und -p, um eine PID anzugeben. Mit dem folgenden Befehl wird der Befehl dd (PID 8275) auf 50 % der Auslastung eines CPU-Kerns beschränkt:

# cputool --cpu-limit 50 -p 8275 

Nach dem Start von cputool können wir die neue CPU-Auslastung für den Prozess (PID 8275) noch einmal überprüfen. Jetzt sollte die CPU-Auslastung für den dd-Prozess zwischen (49,0 % und 52,0 %) liegen.

# top

Um die CPU-Auslastung von dd weiter auf 20% zu begrenzen, können wir cputool ein zweites Mal ausführen:

# cputool --cpu-limit 20 -p 8275 

Überprüfen Sie dann sofort mit Tools wie top oder glances like this (die CPU-Auslastung für dd sollte jetzt zwischen 19,0 % und 22,0 % oder etwas darüber liegen):

# top

Beachten Sie, dass die Shell keine Benutzereingaben erwartet, während cputool ausgeführt wird. reagiert daher nicht mehr. Um es zu beenden (dadurch wird die Operation zur Begrenzung der CPU-Auslastung beendet), drücken Sie Strg + C.

Wichtig ist, um eine Prozessgruppe (ein Programm mit mehreren laufenden Instanzen mit jeweils einer eigenen PID) anzugeben, z. B. HTTP-Webserver:

# pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

Verwenden Sie das Flag -P wie folgt:

# cputool --cpu-limit 20 -P 1780

Begrenzung der Systemlast mit CUPTool

Die Option -l wird verwendet, um die maximale Last anzugeben, die das System durchlaufen darf, damit der Prozess oder die Prozessgruppe weiter ausgeführt wird. Wir können einen Bruchwert verwenden (z. B. 2,5).

Das folgende Beispiel bedeutet, dass rsync für eine lokale Sicherung nur dann ausgeführt wird, wenn die Systemlast 3.5 nicht überschreitet:

# cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/

Weitere Informationen und die Verwendung finden Sie auf der CPUTool-Manpage:

# man cputool

Sehen Sie sich die folgenden nützlichen Anleitungen an, um CPU-Informationen zu finden und die CPU-Leistung zu überwachen:

  1. 9 nützliche Befehle zum Abrufen von CPU-Informationen unter Linux
  2. Cpustat – Überwacht die CPU-Auslastung durch Ausführen von Prozessen unter Linux
  3. CoreFreq – ein leistungsstarkes CPU-Monitoring-Tool für Linux-Systeme
  4. Finden Sie die am häufigsten ausgeführten Prozesse nach höchster Speicher- und CPU-Auslastung in Linux

Zusammenfassend lässt sich sagen, dass CPUTool für das Linux-Leistungsmanagement sehr nützlich ist. Teilen Sie uns Ihre Gedanken zu diesem Artikel über das Feedback-Formular unten mit.

Verwandte Artikel: