Website-Suche

CPUTool – Begrenzen und steuern Sie die CPU-Auslastung aller Prozesse unter Linux


Einer der kritischen Bereiche bei der Linux-Leistungsüberwachung muss die CPU-Auslastung und die Systemlast sein. Es gibt mehrere Tools zur Linux-Leistungsüberwachung, mit denen Sie die Entwicklung eines Systems im Auge behalten können.

Einige dieser Tools geben lediglich den Systemstatus bzw. die Systemstatistiken aus, während einige andere Ihnen Möglichkeiten zur Verwaltung der Systemleistung bieten. Ein solches Tool heißt CPUTool.

CPUTool ist ein einfaches, aber leistungsstarkes Befehlszeilentool zur Begrenzung und Steuerung der CPU-Auslastung eines Prozesses auf einen bestimmten Grenzwert 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 und richtet sich nach der Systemlast. Es basiert auf dem /proc-Pseudodateisystem, um PIDs und deren CPU-Auslastungsmessungen zu lesen.

Es kann verwendet werden, um die CPU-Auslastung oder 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 Linux-Lastdurchschnitte und überwachen Sie die Leistung von Linux

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

Ein CPUTool kann nur auf Debian/Ubuntu und seinen Derivaten aus den Standardsystem-Repositorys mithilfe des Paketverwaltungstools installiert werden.

sudo apt install cputool

Begrenzung der Prozess-CPU-Auslastung mit CUPTool

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

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

Um die CPU-Auslastung zu überwachen, können wir die Top- oder Looks-Tools verwenden, mit denen wir in Echtzeit einen regelmäßig aktualisierten Status laufender Linux-Systemprozesse anzeigen können:

top

Aus der obigen Ausgabe können wir ersehen, dass dd command den höchsten Prozentsatz an CPU-Zeit hat 99,7%). Jetzt können wir dies mithilfe von cputool begrenzen, 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 anzugeben eine PID. Der folgende Befehl begrenzt den dd-Befehl (PID 8275) auf 50 % Nutzung eines CPU-Kerns:

cputool --cpu-limit 50 -p 8275 

Nachdem wir cputool ausgeführt haben, 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 im Bereich von (49,0 %–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 Looks wie diesem (die CPU-Auslastung für dd sollte jetzt zwischen 19,0 % und 22,0 % oder leicht 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 der Vorgang zur Begrenzung der CPU-Nutzung beendet), drücken Sie Strg + C.

Wichtig, um eine Prozessgruppe (ein Programm mit mehreren laufenden Instanzen mit jeweils einer eigenen PID) anzugeben, beispielsweise einen 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

Begrenzen der Systemlast mit CUPTool

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

Das folgende Beispiel bedeutet, dass rsync für ein lokales Backup 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 Verwendungsmöglichkeiten finden Sie auf der Manpage von CPUTool:

man cputool

Schauen 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 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

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