CPU nach Benutzer abrufen

CPU nach Benutzer abrufen

Bei der Arbeit mit Monit muss ich eine Warnung erstellen, die die CPU-Auslastung von Systembenutzern ermittelt, also:

top -b -n 1 -u user1 | awk 'NR>7 { sum += $9; } END { print sum; }'

scheint eine gute Lösung zu sein, aber ich bin mir nicht sicher, ob sie zuverlässig ist, denn wenn ich den obigen Befehl ausführe, ändere ich jedes Mal (offensichtlich) den Wert. Ich brauche also eine „genaue“ Angabe der CPU-Nutzung durch den Benutzer innerhalb von 2-5 Sekunden, da der WERT wie eine E-Mail-Benachrichtigung gesendet wird.

Antwort1

Versuche dies

ps -eo pcpu,pid,user,args | sort -k 1 -r | head -5

Die Ausgabe sieht wie folgt aus:

%CPU   PID USER     COMMAND
0.6 18695 mysql  /usr/sbin/mysqld
0.1   961 root     [kdmflush]
0.1   937 root     [kdmflush]
0.1  1025 root     [jbd2/dm-2-8]

verwandte Informationen