msoliver
(usa Debian)
Enviado em 26/02/2021 - 21:49h
fabio_aragao escreveu:
Bom dia a todos,
Temos uma instancia na AWS com Ubuntu, reparamos que vez ou outra a CPU fica em 80% por alguns minutos aleatoriamente mas não sabemos qual processo está fazendo isso.
No Linux Ubuntu ou se alguem sabe na AWS mesmo, existe alguma forma de pegar um log no horario que o pico de processamento aconteceu para saber o que está ocasionando este cosumo ??
Obrigado
Boa noite Fabio.
O comando:
ps -eo pmem,pcpu,comm --sort -pcpu|gawk 'BEGIN{printf "\nData: %s\n""PROC %MEM %CPU COMMAND\n",strftime("%F Hora: %X")}{cmd[$3]++;mem[$3]+=$1;cpu[$3]+=$2;}END{for(x in cmd) if(mem[x]>0 && cpu[x]>0) print cmd[x],mem[x]"%",cpu[x]"%",x}'|column -t
Conta os processos, o consumo de CPU e Memória de cada um, filtra a saída, excluindo processos com 0% de consumo de Memória/CPU....
Saída:
Data: 2021-02-26 Hora: 21:11:42
PROC %MEM %CPU COMMAND
13 22.9% 31.8% chrome
1 0.7% 0.1% kate
1 0.6% 0.6% kicker
1 0.5% 0.6% tdepowersave
1 1% 4% Xorg
1 0.1% 1% compton-tde
3 2.1% 0.2% kwrite
1 0.6% 0.1% kdesktop
----------------------------------------------------------------------------------------------------------------------------
A idéia é, deixar o comando executando, de "tempo em tempo", armazenando a saída em um relatório.txt,
Depois, é só analisar o relatório.....
----------------------------------------------------------------------------------------------------------------------------
Com separador:
sep=$(printf "%28s"|sed -r 's/ /-/g;s/.{7}/& /g')
ps -eo pmem,pcpu,comm|gawk 'BEGIN{printf "\n'"${sep}"'\nData: %s\n""PROC %MEM %CPU COMMAND\n",strftime("%F Hora: %X")}{cmd[$3]++;mem[$3]+=$1;cpu[$3]+=$2;}END{for(x in cmd) if(mem[x]>0 && cpu[x]>0) print cmd[x],mem[x]"%",cpu[x]"%",x}END{printf "\n'"${sep}"'\n" }'|column -t
----- ----- ----- -----
Data: 2021-02-26 Hora: 21:45:12
PROC %MEM %CPU COMMAND
14 25.3% 35.8% chrome
1 0.6% 0.6% kicker
1 0.5% 0.6% tdepowersave
1 1% 4.2% Xorg
1 0.1% 1% compton-tde
----- ----- ----- -----
CORREÇãO: em 28-02-2021 04:10:00 Alterada a lógica no END, de E para OU,
ps -eo pmem,pcpu,comm --sort -pcpu|gawk 'BEGIN{printf "\nData: %s\n""PROC %MEM %CPU COMMAND\n",strftime("%F Hora: %X")}{cmd[$3]++;mem[$3]+=$1;cpu[$3]+=$2;}END{for(x in cmd) if(mem[x]>0 || cpu[x]>0) print cmd[x],mem[x]"%",cpu[x]"%",x}'|column -t
______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando:
lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p' ,
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:
Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.
______________________________________________________________________