Überwachung der CPU-Auslastung in AIX-Servern

Überwachung der CPU-Auslastung in AIX-Servern

Um die CPU-Auslastung auf einem AIX-Server zu überwachen, verwende ich das folgende Skript, das alle 10 Minuten ausgeführt wird.

lparstat 2 10 > cpu
usage=$(tail -10 cpu | awk 'BEGIN {sum=0;} {sum+=$4} END{print int(100-sum/10)}')


if [[ $usage -ge 90 ]]; then
# mail the error and cpu file to admin
# displaying this for testing purposes
echo "CPU usage off the charts!!!"
cat cpu
fi

Falls die CPU-Auslastung jedoch über 90 % liegt, muss ich die 5 Prozesse auflisten, die die CPU am stärksten beanspruchen.

Wie erreiche ich das?

Antwort1

Sie können die Top 5 in einer einigermaßen lesbaren Weise auflisten, indem Sie die Spalten begrenzen, sie zuerst nach der höchsten CPU-Auslastung sortieren und dann auf die ersten 5 kürzen (mit head -6, da wir auch die Überschriften einschließen möchten):

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

Die Ausgabe sieht ungefähr so ​​aus:

%CPU   PID COMMAND
 2.0 30531 -bash
 0.0 30673 head -6
 0.0 30672 sort -k 1 -r
 0.0 30671 ps -eo pcpu,pid,args
 0.0 30670 [flush-253:0]

topMöglicherweise möchten Sie sich auch den Batchmodus () von GNU ansehen -b.

Antwort2

Für einen tiefen Tauchgang ist es am besten,

tprof -skex sleep 10

Dadurch erhalten Sie einen detaillierten Bericht zu den Prozessen mit hoher CPU-Belastung und können dann die Nutzung nach Funktion und gemeinsam genutzten Bibliotheken aufschlüsseln.

Antwort3

Sie können den folgenden Befehl verwenden. Er stimmt mit der Topas-Ausgabe überein.

ps -ef | egrep -v "STIME|$LOGNAME" | sort +3 -r | head -n 15

verwandte Informationen