
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