Monitoramento do uso da CPU em servidores AIX

0

Para monitorar o uso da CPU em um servidor AIX, estou usando o seguinte script que é executado a 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

No entanto, caso o uso da CPU esteja acima de 90%, eu preciso listar os 5 principais processos que estão usando a CPU.

Como faço para isso?

    
por debal 10.10.2013 / 08:03

3 respostas

2

Você pode listar os 5 primeiros de uma forma bastante legível limitando as colunas, classificando-as com o maior uso de CPU primeiro e, em seguida, truncando para as 5 primeiras (usando head -6 , pois também queremos incluir os cabeçalhos) :

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

A saída é algo como isto:

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

Você também pode querer olhar para o modo de lote do GNU top ( -b ).

    
por 10.10.2013 / 09:03
0

Para um mergulho profundo, o melhor curso de ação aqui é correr

tprof -skex sleep 10

, que fornecerá um relatório detalhando os processos usando alta CPU e, em seguida, detalhará o uso por função e bibliotecas compartilhadas.

    
por 03.04.2017 / 22:41
-1

você pode usar o comando abaixo que irá combinar com a saída topas

ps -ef | egrep -v "STIME|$LOGNAME" | sort +3 -r | head -n 15
    
por 27.11.2013 / 14:57