Monitoreo del uso de CPU en servidores AIX

Monitoreo del uso de CPU en servidores AIX

Para monitorear el uso de la CPU en un servidor AIX, estoy usando el siguiente script que se ejecuta cada 10 minutos.

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

Sin embargo, en caso de que el uso de la CPU sea superior al 90%, necesito enumerar los 5 procesos principales que utilizan la CPU.

¿Cómo logro esto?

Respuesta1

Puede enumerar los 5 primeros de una manera bastante legible limitando las columnas, ordenándolas primero con el mayor uso de CPU y luego truncando a las primeras 5 (usando head -6, ya que también queremos incluir los encabezados):

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

La salida se parece a esto:

%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]

Es posible que también desee examinar topel modo por lotes de GNU ( -b).

Respuesta2

Para una inmersión profunda, el mejor curso de acción aquí es correr

tprof -skex sleep 10

que le brindará un informe que detalla los procesos que utilizan una gran cantidad de CPU y luego profundizará en el uso por función y bibliotecas compartidas.

Respuesta3

puedes usar el siguiente comando, coincidirá con la salida de topas

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

información relacionada