CPustat - überwacht die CPU -Auslastung durch Ausführung von Prozessen unter Linux

CPustat - überwacht die CPU -Auslastung durch Ausführung von Prozessen unter Linux

Cpustat ist ein leistungsstarkes Programm für Systemleistungsmaßnahmen für Linux, das mit Go -Programmiersprache geschrieben wurde. Es wird versucht, die CPU -Auslastung und -Sättigung effektiv aufzuteilen, wobei die Methode der Nutzungssättigung und Fehler (Verwendung) (eine Methodik zur Analyse der Leistung eines Systems) verwendet wird.

Es extrahiert höhere Frequenzproben jedes Prozesses, der auf das System ausgeführt wird. Zum Beispiel kann es jeden Prozess messen 200 ms und fassen Sie diese Stichproben alle zusammen 5 Sekunden, einschließlich min/durchschnittlicher/maximaler Werte für bestimmte Metriken.

Vorgeschlagene Lesen: 20 Befehlszeilen -Tools zur Überwachung der Linux -Leistung

Cpustat gibt Daten auf zwei mögliche Arten aus: eine reine Textliste des Zusammenfassungsintervalls und ein farbenfrohes Scroll -Dashboard jedes Beispiels.

So installieren Sie CPustat unter Linux

Du musst haben Go (Golang) Installiert auf Ihrem Linux -System, um sie zu verwenden Cpustat, Klicken Sie auf den Link unten, um die Installationsschritte der Golang -Installation zu befolgen, wenn Sie nicht installiert sind:

  1. Installieren Sie Golang (Go -Programmiersprache) unter Linux

Sobald Sie installiert haben Gehen, Schreib die geh holen Der Befehl unten zum Installieren wird dieser Befehl das installiert Cpustat binär in deinem Gobin Variable:

# Geh und hol Github.com/uber-common/cpustat 

So verwenden Sie CPustat unter Linux

Wenn der Installationsprozess abgeschlossen ist Cpustat Wie folgt mit dem Befehl sudo unter Verwendung der Root-Berechtigungen, wenn Sie das System als Nicht-Root-Benutzer steuern, erhalten Sie ansonsten den Fehler wie gezeigt:

$ $ Gobin/cpustat Dieses Programm verwendet die NetLink TaskStats -Schnittstelle, daher muss es als Root ausgeführt werden. 

Notiz: Laufen Cpustat sowie alle anderen GO -Programme, die Sie wie alle anderen Befehle in Ihrem System installiert haben Gobin Variable in Ihrem WEG Umgebungsvariable. Öffnen Sie den folgenden Link, um zu erfahren, wie Sie die Pfadvariable unter Linux festlegen.

  1. Erfahren Sie, wie Sie Ihre $ Path -Variablen dauerhaft unter Linux festlegen

Das ist wie Cpustat Werke; Die /proc Das Verzeichnis wird befragt, um die aktuelle Liste der Prozess -IDs für jedes Intervall zu erhalten, und:

  • Lesen Sie für jede PID /proc/pid/stat, Dann berechnen Sie die Differenz von früherer Probe.
  • Falls es sich um eine neue PID handelt, lesen Sie /proc/pid/cmdline.
  • Senden Sie für jede PID eine NetLink -Nachricht, um die TaskStats abzurufen. Berechnen Sie die Differenz von früheren Beispielen.
  • bringen /proc/stat Um die Gesamtsystemstatistiken zu erhalten.

Auch hier wird jedes Schlafintervall angepasst, um das Ausmaß des Zeitverbrauchs zu berücksichtigen, das alle diese Statistiken abholt. Darüber hinaus zeichnet jede Probe die Zeit auf, die für die Skalierung jeder Messung durch die tatsächliche verstrichene Zeit zwischen den Proben erforderlich ist. Dies versucht, Verzögerungen im Cpustat selbst zu berücksichtigen.

Wenn Sie ohne Argumente laufen, Cpustat Zeigt standardmäßig die folgende an: Stichprobenintervall: 200 ms, zusammenfassendes Intervall: 2S (10 Proben), angezeigt die Top 10 Procs, Benutzerfilter: All, PID -Filter: Alle wie im folgenden Screenshot gezeigt:

$ sudo $ gobin/cpustat 
CPustat - Überwachung der Linux -CPU -Verwendung

Aus der obigen Ausgabe finden Sie folgende Bedeutungen der systemweiten zusammenfassenden Metriken, die vor den Feldern angezeigt werden:

  • USR - MIN/AVG/MAX -Benutzermodus Laufzeit als Prozentsatz einer CPU.
  • sys - MIN/AVG/MAX -Systemmodus Laufzeit als Prozentsatz einer CPU.
  • Hübsch - MIN/AVG/MAX -Benutzermodus niedrige Prioritätslaufzeit als Prozentsatz einer CPU.
  • Leerlauf - MIN/AVG/MAX -Benutzermodus Laufzeit als Prozentsatz einer CPU.
  • Iowait - min/avg/max verzögerte Zeit wartet auf die Festplatte IO.
  • Prun - min/avg/max -Prozesse in einem laufbaren Zustand (wie Lastdurchschnitt).
  • pblock - Min/AVG/Max -Anzahl von Prozessen, die auf der Festplatte blockiert sind.
  • pstart - Anzahl der Prozesse/Threads, die in diesem Zusammenfassungsintervall gestartet wurden.

Immer noch aus der obigen Ausgabe für einen bestimmten Prozess bedeuten die verschiedenen Spalten:

  • Name - gemeinsamer Prozessname aus/proc/pid/stat oder/proc/pid/cmdline.
  • PID - Prozess -ID, auch als "TGID" bezeichnet.
  • Mindest - Niedrigste Stichprobe der Benutzer+Systemzeit für die PID, gemessen aus/proc/pid/stat. Die Skala ist ein Prozentsatz einer CPU.
  • Max - höchste Stichprobe der Benutzer+Systemzeit für diese PID, ebenfalls gemessen aus/proc/pid/stat.
  • USR - Durchschnittliche Benutzerzeit für die PID über den Zusammenfassungszeitraum, gemessen aus/proc/pid/stat.
  • sys - Durchschnittliche Systemzeit für die PID über den Zusammenfassungszeitraum, gemessen aus/proc/pid/stat.
  • Hübsch - Zeigt den aktuellen „schönen“ Wert für den Prozess an, gemessen aus/proc/pid/stat. Höher bedeutet "schöner".
  • Runq - Zeit für den Prozess und alle seine Threads, die ausgegeben werden, aber darauf warten. Die Skala ist ein Prozentsatz einer CPU.
  • Iow - Zeit für den Prozess und alle seine von der Disk blockierten Threads, gemessen von Taskstats über NetLink. Die Skala ist ein Prozentsatz einer CPU, die über das zusammenfassende Intervall gemittelt wurde.
  • Tausch - Zeit für den Prozess und alle seine Fäden, die darauf gewartet wurden, ausgetauscht zu werden, gemessen von Taskstats über NetLink. Die Skala ist ein Prozentsatz einer CPU, die über das zusammenfassende Intervall gemittelt wurde.
  • VCX und ICX - Gesamtzahl der freiwilligen Kontextschalter nach dem Prozess und allen Threads über das zusammenfassende Intervall, gemessen von TaskStats über NetLink.
  • RSS - Der aktuelle RSS -Wert, der aus/proc/pid/stat abgerufen wurde. Es ist die Menge an Speicher, die dieser Prozess verwendet.
  • CTime - Summe von Benutzer+SYS -CPU -Zeitverbrauch von Waited auf Kinder, die während dieses zusammenfassenden Intervalls ausgestiegen sind, gemessen aus/proc/pid/stat.

Beachten Sie, dass lang laufende Kinderprozesse diese Messung häufig verwirren können. Dies ist jedoch nützlich, um die Auswirkungen häufiger Cron -Jobs und Gesundheitsprüfungen zu messen, bei denen die CPU -Zeit häufig von vielen Kinderprozessen konsumiert wird.

  • thrd - Anzahl der Threads am Ende des Zusammenfassungsintervalls, gemessen aus/proc/pid/stat.
  • Sam - Anzahl der Stichproben für diesen Prozess, der im Zusammenfassungsintervall enthalten ist. Prozesse, die kürzlich begonnen oder verlassen haben.

Der folgende Befehl zeigt die Top 10 Root -Benutzerprozesse an, die auf dem System ausgeführt werden:

$ sudo $ gobin/cpustat -u root 
Finden Sie Root -Benutzerauslaufprozesse

Verwenden Sie die Ausgabe in einem ausgefallenen Terminalmodus, um die -T Flagge wie folgt:

$ sudo $ gobin/cpustat -u roo -t 
Ausführen von Prozessnutzung des Stammbenutzers

Um die obere x -Anzahl der Prozesse anzuzeigen (die Standardeinstellung ist 10), können Sie die verwenden -N Flag, der folgende Befehl zeigt die Top 20 Linux -Prozesse an, die auf dem System ausgeführt werden:

$ sudo $ gobin/cpustat -n 20 

Sie können das CPU -Profil auch mit der Datei schreiben -CPUPROFILE Option wie folgt und verwenden Sie den Befehl cat, um die Datei anzuzeigen:

$ sudo $ gobin/cpustat -cpuprofile cpuprof.txt $ cat cpuprof.txt 

Verwenden Sie die Hilfsinformationen, um die Informationen zu verwenden -H Flagge wie folgt:

$ sudo $ gobin/cpustat -h 

Weitere Informationen finden Sie im CPustat Github -Repository: https: // github.com/uber-common/cpustat

Das ist alles! In diesem Artikel haben wir Ihnen gezeigt, wie Sie CPustat installieren und verwenden, ein nützliches Tool für Systemleistungsmessungen für Linux. Teilen Sie uns Ihre Gedanken über den Kommentarbereich unten mit.