Wie erhalte ich den durchschnittlichen CPU-Prozentsatz (pro Sekunde), der von einem einzelnen Prozess vom Start bis zum Ende (Existieren) verbraucht wird? Könnte ich dies mit Top erreichen?
Antwort1
ps
Sie können hierfür das Dienstprogramm verwenden .
Um den Prozentsatz der CPU-Auslastung über die gesamte Lebensdauer eines einzelnen Prozesses anzuzeigen, haben Sie folgende Möglichkeiten:
ps h -p $PID -o %cpu
Um den CPU-Prozentsatz aller laufenden Prozesse anzuzeigen, können Sie Folgendes tun:
ps ax -o pid,%cpu,comm
Antwort2
Eine Möglichkeit hierzu besteht darin, ein kleines Bash-Skript zu schreiben, das:
- nimmt den Prozess-/Befehlsnamen von Interesse als einziges Argument,
$arg1
- extrahiert die PID für diesen Prozess mit einem angemessenen
ps | grep
oder einemps | awk
- behält die PID-Nummer bei
$arg2
- führt einen Cron-Job auf dem zweiten mit einer ausführbaren Datei aus, die auf einem
ps -eo pcpu,cmd | egrep $arg1 >> logfile-$arg2
- macht die Beendigung des Cron-Jobs davon abhängig, ob der Prozess noch existiert (testen Sie einfach die in gespeicherte PID-Nummer
$arg2
). - wird beendet, wenn der Test-PID nicht mehr in der Ausgabe von
ps