Einer der kritischen Bereiche unter Linux Leistungsüberwachung muss die CPU-Auslastung und die Systemlast sein. Es gibt mehrere Linux Leistungsüberwachungswerkzeuge, um im Auge zu behalten, wie sich die Dinge auf einem System entwickeln.
A number of these tools simply output the system state/statistics while a few others provide you means of managing system performance. One such tool called CPUTool.
CPUTool ist ein einfaches, aber leistungsstarkes Befehlszeilenwerkzeug zur Begrenzung und Steuerung der CPU-Auslastung eines beliebigen Prozesses auf ein festgelegtes 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 Signale SIGSTOP und SIGCONT an Prozesse, und dies wird durch die Systemlast bestimmt. Es verlässt sich auf das /proc Pseudo-Dateisystem, um PIDs und ihre CPU-Auslastungsmessungen 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 ein festgelegtes Limit zu begrenzen und/oder Prozesse auszusetzen, wenn die Systemlast einen Schwellenwert überschreitet.
Empfohlene Lektüre: Verstehen von Linux-Lastdurchschnitten und Überwachen der Leistung von Linux
Installieren Sie CPUTool, um die CPU-Auslastung und die durchschnittliche Last zu begrenzen.
A CPUTool is only available to install on Debian/Ubuntu and its derivatives from the default system repositories using package management tool.
$ sudo apt install cputool
Begrenzung der Prozessor-CPU-Auslastung mit CUPTool
Jetzt schauen wir uns an, wie cputool wirklich funktioniert. Um dies zu demonstrieren, führen wir einen dd-Befehl aus, der zu einer hohen CPU-Auslastung im Hintergrund und zur Anzeige seiner PID führen sollte.
# dd if=/dev/zero of=/dev/null &
Zur Überwachung der CPU-Auslastung können wir die Tools top oder glances verwenden, die es uns ermöglichen, den Echtzeit-Status der laufenden Linux-Systemprozesse regelmäßig zu aktualisieren:
# top

Aus der obigen Ausgabe können wir sehen, dass der dd-Befehl den höchsten Prozentsatz der CPU-Zeit hat (99,7%)
. Dies können wir nun mithilfe von cputool wie unten gezeigt begrenzen.
Die Option --cpu-limit
oder -c
wird verwendet, um einen Auslastungsprozentsatz für einen Prozess oder eine Gruppe von Prozessen festzulegen, und -p
um eine PID anzugeben. Der folgende Befehl begrenzt den dd-Befehl (PID 8275) auf 50% der Nutzung eines CPU-Kerns:
# cputool --cpu-limit 50 -p 8275
Nach Ausführung von cputool können wir die neue CPU-Auslastung für den Prozess (PID 8275) erneut überprüfen. Nun 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
Dann überprüfen Sie sofort mit Tools wie top oder glances wie folgt (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 Benutzereingabe erwartet, während cputool läuft; daher wird sie nicht reagieren. Um es zu beenden (dies beendet die CPU-Auslastungsbegrenzung), drücken Sie Strg + C
.
Wichtig ist, um eine Prozessgruppe (ein Programm mit mehreren laufenden Instanzen, von denen jede eine eigene PID hat) zu spezifizieren, zum Beispiel einen HTTP-Webserver:
# pidof apache2 9592 3643 3642 3641 3640 3638 3637 1780
Verwenden Sie die -P
Flagge 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 für den Prozess oder die Prozessgruppe durchlaufen darf, um weiterhin ausgeführt zu werden. Wir können einen Bruchwert verwenden (z. B. 2,5).
Das folgende Beispiel bedeutet, dass rsync für ein lokales Backup nur ausgeführt wird, wenn die Systemlast 3,5 nicht überschreitet:
# cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/
Für weitere Informationen und Anwendungsbeispiele, sehen Sie sich die CPUTool-Manpage an:
# man cputool
Schauen Sie sich auch die folgenden nützlichen Anleitungen zur Ermittlung von CPU-Informationen und zur Überwachung der CPU-Performance an:
- 9 Nützliche Befehle, um CPU-Informationen unter Linux zu erhalten
- Cpustat – Überwacht die CPU-Auslastung durch laufende Prozesse in Linux
- CoreFreq – Ein leistungsstarkes CPU-Überwachungstool für Linux-Systeme
- Suchen Sie nach den Top-Laufenden Prozessen mit dem höchsten Speicher- und CPU-Verbrauch in Linux
Zusammenfassend ist CPUTool wirklich nützlich für das Performance-Management unter Linux. Teilen Sie gerne Ihre Gedanken zu diesem Artikel über das untenstehende Feedback-Formular mit.
Source:
https://www.tecmint.com/cputool-limit-linux-process-cpu-usage-load/