Verificar uso de CPU de um aplicativo com o comando top -bn1 [RESOLVIDO]

1. Verificar uso de CPU de um aplicativo com o comando top -bn1 [RESOLVIDO]

Pedro
PX

(usa Debian)

Enviado em 01/07/2015 - 19:07h

Eai galera, bom venho aqui para pedir aquela força com shell, quero usar o comando top -bn1 para "grepar" quantos porcento um aplicativo está usando de cpu naquele momento, isso irá servir para aprimorar um script que uso para manter a tela do computador ligado vendo vídeos em tela cheia, e talvés para controlar hibernação ainda não sei vamos ver como se comporta, não manjo muito de usar sed, wc, etc... bom sei que pra quem manja é bem fácil até rsrs, se puderem me dar uma clareada, saída do chrome vendo vídeos no youtube:

top -bn1 | grep chrome 


Cabeçalho:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18009 px        20   0 1009700 270272  89440 S  25,0  6,7   0:14.61 chrome
3423 px 20 0 583872 190844 85248 S 6,3 4,7 26:30.91 chrome
3370 px 20 0 1115496 229148 100148 S 0,0 5,7 11:04.95 chrome
3380 px 20 0 6376 740 656 S 0,0 0,0 0:00.00 chrome-san+
3381 px 20 0 355660 43844 35764 S 0,0 1,1 0:00.02 chrome
3383 px 20 0 6376 740 656 S 0,0 0,0 0:00.00 chrome-san+
3386 px 20 0 372052 13256 5136 S 0,0 0,3 0:00.20 chrome
3447 px 20 0 753000 61284 43124 S 0,0 1,5 0:00.29 chrome
3454 px 20 0 362052 26648 6524 S 0,0 0,7 0:00.00 chrome
3461 px 20 0 912164 195684 46404 S 0,0 4,9 1:34.00 chrome
3465 px 20 0 776476 69724 45600 S 0,0 1,7 0:20.43 chrome
13516 px 20 0 908432 154772 91068 S 0,0 3,8 1:00.30 chrome
13543 px 20 0 862340 89592 40004 S 0,0 2,2 0:54.28 chrome
15690 px 20 0 855964 123264 64852 S 0,0 3,1 0:53.04 chrome


Então resumindo gostaria se possível pegar o uso de cpu total do aplicativo em questão salvar em uma variável e comparar com um número pré definido (20% no caso), sei comparar mais não estou conseguindo obter o total de cpu usada por este método.

Obrigado e boa noite a todos.



  


2. MELHOR RESPOSTA

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 03/07/2015 - 17:53h


Olá

O que quer é a soma total de uso CPU de um determinado aplicativo certo?

Faz assim:

top -bin 1 | grep 'chrome' | awk -F" " '{print$9}' |sed 's/,/./g'| paste -s | tr '\t' '+' | bc


acrescentei -i no top (para somente exibir os processos ativos)
Awk para pegar somente a coluna do processamento
sed para trocar "," por "."
paste -s para colocar na horizontal
tr pra adicionar o operador "+"
Bc pra somar

Espero ter ajudado!

Abs


3. Re: Verificar uso de CPU de um aplicativo com o comando top -bn1 [RESOLVIDO]

Zhu Sha Zang
zhushazang

(usa Gentoo)

Enviado em 01/07/2015 - 19:42h

Então, na 8ª e 9ª coluna estão os consumos de PROC e RAM. Acredito que o somatório destas colunas lhe dará a porcentagem total de uso.

Atenciosamente

---
Hail Hydra!


4. Re: Verificar uso de CPU de um aplicativo com o comando top -bn1

Patrick Silva
ps-martins

(usa Debian)

Enviado em 01/07/2015 - 20:10h

top -bn1 | grep httpd | tail -1 | awk -F " " '{print "PROGRAMA : " $2,"USO CPU : " $9}' 



5. Re: Verificar uso de CPU de um aplicativo com o comando top -bn1 [RESOLVIDO]

Pedro
PX

(usa Debian)

Enviado em 01/07/2015 - 22:32h

zhushazang escreveu:

Então, na 8ª e 9ª coluna estão os consumos de PROC e RAM. Acredito que o somatório destas colunas lhe dará a porcentagem total de uso.

Atenciosamente

---
Hail Hydra!



Obrigado pela resposta, bem seguindo seu raciocínio eu consegui isolar os 2 principais valores da coluna de uso do processador... esses números são o uso da cpu pelo aplicativo, agora só falta uma maneira de soma-los.

px@PX-PC:~$ top -bn1 | grep 'chrome' | head -2 | cut -c49-50
18
6


Estava pensando em fazer algo feio - igual eu sempre faço kkk - tipo rodar 2 vezes o comando com 2 variáveis pra depois soma-las mais ai seria 2x mais demorado e queria uma expressão única para isto.

tipo:

A=1; B=2; expr $A + $B 


aplicando no meu caso ficaria algo como:

A=`top -bn1 | grep 'chrome' | head -1 | cut -c49-50`; B=`top -bn1 | grep 'chrome' | head -2 | cut -c49-50`; expr $A + $B 


px@PX-PC:~$ A=`top -bn1 | grep 'chrome' | head -1 | cut -c49-50`; B=`top -bn1 | grep 'chrome' | head -2 | cut -c49-50`; expr $A + $B
expr: erro de sintaxe


O problema é que o head -2 no segundo caso esta retornando as 2 colunas e quero usar somente o segundo número, como faria isso?

px@PX-PC:~$ B=`top -bn1 | grep 'chrome' | head -2 | cut -c49-50`; echo $B
12 6



PS: tive que dar uma desligada no pc pq começou a chover forte por aqui e só parou agora ^^


6. Re: Verificar uso de CPU de um aplicativo com o comando top -bn1

Pedro
PX

(usa Debian)

Enviado em 01/07/2015 - 22:34h

ps-martins escreveu:

top -bn1 | grep httpd | tail -1 | awk -F " " '{print "PROGRAMA : " $2,"USO CPU : " $9}' 


Não entendi bem como aplicar isso no meu caso, desculpe a minha ignorância


7. Re: Verificar uso de CPU de um aplicativo com o comando top -bn1 [RESOLVIDO]

Patrick Silva
ps-martins

(usa Debian)

Enviado em 01/07/2015 - 23:03h

top -bn1 | grep chrome | tail -1 | awk -F " " '{print "PROGRAMA : " $2,"USO CPU : " $9}' 



8. Re: Verificar uso de CPU de um aplicativo com o comando top -bn1

Pedro
PX

(usa Debian)

Enviado em 01/07/2015 - 23:04h

ps-martins escreveu:

top -bn1 | grep chrome | tail -1 | awk -F " " '{print "PROGRAMA : " $2,"USO CPU : " $9}' 



px@PX-PC:~$ top -bn1 | grep chrome | tail -1 | awk -F " " '{print "PROGRAMA : " $2,"USO CPU : " $9}'
PROGRAMA : px USO CPU : 0,0


px@PX-PC:~$ top -bn1 | grep 'chrome' | head -1 | cut -c49-50
44




9. Re: Verificar uso de CPU de um aplicativo com o comando top -bn1 [RESOLVIDO]

Pedro
PX

(usa Debian)

Enviado em 05/07/2015 - 02:47h

tonyhts escreveu:


Olá

O que quer é a soma total de uso CPU de um determinado aplicativo certo?

Faz assim:

top -bin 1 | grep 'chrome' | awk -F" " '{print$9}' |sed 's/,/./g'| paste -s | tr '\t' '+' | bc


acrescentei -i no top (para somente exibir os processos ativos)
Awk para pegar somente a coluna do processamento
sed para trocar "," por "."
paste -s para colocar na horizontal
tr pra adicionar o operador "+"
Bc pra somar

Espero ter ajudado!

Abs



Opa, vlw deu certinho mesmo... o estranho é ter valores bem altos as vezes... e pro meu caso que seria saber se o processador esta ativo estou usando:

cpuload=`top -bn1 | grep 'chrome' | head -1 | cut -c49-50`
if [ $cpuload -ge 19 ];then


no código, mas como o objetivo era somar tudo no tópico a sua foi a única resposta que conseguiu, obrigado.



10. Re: Verificar uso de CPU de um aplicativo com o comando top -bn1 [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 05/07/2015 - 11:06h


Show! Parabéns.

Abs






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts