Oberer Befehl

Oberer Befehl

Gibt es einen Befehl oder eine Möglichkeit zu überprüfen, welcher Prozess in den letzten 24 Stunden eine hohe CPU-Auslastung verursacht hat? Gestern Abend um 23:30 Uhr (Datum: 30.11.2022) haben wir die Meldung erhalten, dass die CPU-Auslastung hoch ist. Wir müssen also herausfinden, welcher Prozess die hohe Auslastung verursacht.

Antwort1

sar

Sie könnensar. Es ist Teil von sysstat. So installieren Sie es:

sudo apt-get install sysstat

Aktivieren Sie es als Nächstes, indem Sie /etc/default/sysstat bearbeiten und „ENABLED“ auf „true“ setzen.

Auf diese Weise wird Ihr System überwacht und alle 10 Minuten ein Bericht erstellt, der nach einer Woche ausgetauscht wird. Sie können dieses Verhalten ändern, indem Sie die sysstat-Crontab unter /etc/cron.d/sysstat bearbeiten oder die Rotationseinstellungen in den sysstat-Einstellungen unter /etc/sysstat/sysstat ändern.

Mit dem folgenden Befehl können Sie einen Echtzeitbericht erstellen:

sar -u 1 3

sysstat sammelt jede Minute Daten zur CPU-Auslastung im Hintergrund und speichert sie in /var/log/sysstat/. Sie können diese Daten dann zur Analyse importieren, entweder mit einem Tabellenkalkulationsprogramm oder einem benutzerdefinierten Tool wie Sargraph.

oben auf

Eine Alternative ist die Verwendungoben aufdie in der Lage ist, Rohdaten in einer Datei für die Langzeitanalyse auf Systemebene zu speichern undProzessebene. Standardmäßig werden die täglichen Protokolldateien 28 Tage lang aufbewahrt. Mithilfe des Befehls atopsar können aus einer Protokolldatei Berichte zur Systemaktivität erstellt werden.

atop ist in den Ubuntu-Repositories verfügbar unter:sudo apt install atop

Antwort2

Oberer Befehl

Top im Batch-Modus

top -b -n 1

Dann fische es mit Sed raus

top -b -n 1 | sed -n 8,8p

Antwort3

Direkter Zugriff auf die Protokolldatei

/var/log/syslog

Mit grep einkochen lassen

cat /var/log/syslog | grep Nov | grep 30 | grep  11: | grep pid=

Antwort4

Prozessbefehl

Prozessstatus (ps)

ps
    ps -eo lstart,pid,zeit,benutzer,comm,pcpu |\
    grep 2022 |\
    grep Nov |\
    grep pm |\
    grep 11 |\
    sortieren -n -k 10 -r |\
    Kopf --Zeilen 1

Erläuterung

ps (Prozessstatus)
-e (alle Prozesse)
-o (Ausgabe formatieren)
lstart (langer Start)
PID (Prozessidentifikation)
Zeit Zeit)
Benutzer (der Benutzer)
comm (Befehl)
pcpu (CPU-Auslastung in Prozent)

Die Ausgabe wird an ein anderes Programm weitergeleitet, grep.

grep 2022 | grep Nov | grep pm | grep 11

Dann sortiert nach Nummer und der Spalte mit dem CPU-Prozentsatz

 
sortieren -n -k 10 -r
-n (Zahl)
-k (Spalte)
-r (umgekehrt)

Dann wird es in den Kopf geleitet, um nur die erste Leitung durchzulassen

Kopf --Zeilen 1

verwandte Informationen