TOP vs PS + Monitorar processos filhos [RESOLVIDO]

1. TOP vs PS + Monitorar processos filhos [RESOLVIDO]

Jhonatan Francisco de Paula
jhonatan1090

(usa CentOS)

Enviado em 26/07/2015 - 11:16h

Olá pessoal, estou fazendo um tipo de benchmark para uns programas que estou executar no meu curso, e preciso de segundo em segundo (as vezes até menos dependendo do programa) tirar um "screenshot" de como está meu processo na maquina. Comecei usando TOP, mas tem programa que executa em milissegundos, e até chegar no TOP o carinha já morreu. Como o PS é mais rápido que o TOP pois sua saída não é tão rica de informações, porem traz o que eu preciso (uso de CPU e memória) estou pensando em usa-lo. Mas pelo que andei lendo, ele gera um relatório baseado na média durante toda a execução do processo. Alguém sabe me dizer se é isso mesmo? Podem indicar uma forma melhor de capturar essas informações?


  


2. Re: TOP vs PS + Monitorar processos filhos [RESOLVIDO]

Sergei Martao
sergeimartao

(usa Linux Mint)

Enviado em 26/07/2015 - 12:37h

jhonatan1090

Se você sabe o nome do processo e precisa ver apenas o que ele esta consumindo, utilize esse comando
watch -n 0 'ps aux | grep -i NOMEDOPROCESSO' 

Pelo que conheço não existe diferença entre o ps e o top, segue o que diz o manual do pc

"ps displays information about a selection of the active processes. If you want a repetitive update of the selection and the displayed information, use top(1) instead."
http://linux.die.net/man/1/ps



3. TOP vs PS

Jhonatan Francisco de Paula
jhonatan1090

(usa CentOS)

Enviado em 26/07/2015 - 13:58h

O comando watch é show de bola, me ajudou muito.

Meu problema agora é o tempo, Estou tentando capturar um snapshot de um programa que executa em 0,003 segundos (3 milissegundos). Quando meu PS ou TOP executa o camarada já morreu :/

Sabe se seria possível capturar algo nesse intervalo? e como?

Desde já muito obrigado!!!


4. Re: TOP vs PS + Monitorar processos filhos [RESOLVIDO]

Sergei Martao
sergeimartao

(usa Linux Mint)

Enviado em 26/07/2015 - 16:23h

Por curiosidade, que tipo de programa que executa em 0,003?! o.Õ
Uma coisa já adianto, a utilização de memoria RAM é quase nula, pois nessa velocidade não da nem tempo de utilizar 1mb.
Por ser tão rápido acho que até ferramentas como top/ps vão ter problema para monitorar, o que recomendo é tentar fazer o programa demorar um pouco mais para ser finalizado.
Exemplo, quando faço script e preciso que demore um pouco, uso o:
spleep 10 
Isso faz faz demorar 10 segundo para passar para o próximo programa



5. TOP vs PS

Jhonatan Francisco de Paula
jhonatan1090

(usa CentOS)

Enviado em 26/07/2015 - 16:48h

Pois é, o consumo de RAM e CPU neste caso é quase nulo mesmo, mas como faz parte do programa que estamos testando ele vai ter que entrar no relatório.

Cara, muito obrigado pelo seu tempo. Valeu mesmo!!!


6. Re: TOP vs PS + Monitorar processos filhos [RESOLVIDO]

Sergei Martao
sergeimartao

(usa Linux Mint)

Enviado em 26/07/2015 - 17:50h

De nada, sempre acho esse tipo de dúvida muito interessante! xD

Se você souber o nome do processo, teste esse script.
#!/bin/bash
for((i=0; i<1; i--));
do
ps aux | grep -vi grep | grep -i NOMEDOPROCESSO >> /DIRETORIO/ARQUIVO_DE_DESTINO
done

Ele vai executar o mais rápido possível o ps e jogar a saída em um arquivo, vai ser um loop infinito só vai parar quando for cancelado com Ctrl + C.









7. TOP vs PS

Jhonatan Francisco de Paula
jhonatan1090

(usa CentOS)

Enviado em 26/07/2015 - 18:05h


Sem chance, o programa é muito rápido... Usei o PS logo após a chamada do programa, desse jeito:


p=`bash -c "$line" &> $logBench & echo $!`
# - line é o programa
# - logBench é o arquivo de log
# - echo joga para variavel p o pid

# até chegar aqui já deu 0,003 segundos, e não pega nada
first=`ps -p $p -oeuser,pid,%cpu,%mem,comm | grep $p`



8. Re: TOP vs PS + Monitorar processos filhos [RESOLVIDO]

Sergei Martao
sergeimartao

(usa Linux Mint)

Enviado em 26/07/2015 - 18:50h

Por isso que você deve executar em dois terminais em paralelo

1 - Executa o software
2 - Deixa rodando o loop para pegar o processo



9. TOP vs PS

Jhonatan Francisco de Paula
jhonatan1090

(usa CentOS)

Enviado em 26/07/2015 - 19:06h


Putz cara, sei que estou mudando o assunto do tópico que era PS vs TOP, mas executando o seu código agora vi outra coisa.

Vamos dizer que estou monitorando o programa XYZ... e rodei o seu código. Se o programa XYZ fizer uma chamada para outro programa o linux abre um novo processo para o mesmo, não contabiliza o consumo para o processo XYZ. Não sei se deu para entender, mas é como se o XYZ ficasse parado (ocioso) aguardando o outro programa.


10. Re: TOP vs PS + Monitorar processos filhos [RESOLVIDO]

Sergei Martao
sergeimartao

(usa Linux Mint)

Enviado em 26/07/2015 - 19:21h

Entendi sim

Isso que você falou esta certo, o processo que chamou vai estar zerado, vai contabilizar a utilização de CPU/MEM no processo que foi chamado.



11. TOP vs PS

Jhonatan Francisco de Paula
jhonatan1090

(usa CentOS)

Enviado em 26/07/2015 - 19:31h

Não tem como fazer o shell executar tudo no mesmo pid?


12. Re: TOP vs PS + Monitorar processos filhos [RESOLVIDO]

Sergei Martao
sergeimartao

(usa Linux Mint)

Enviado em 26/07/2015 - 20:14h

Que eu saiba não...
Mas talvez exista alguma forma, é que realmente nunca fui atrás disso.

Esses scripts que de teste, tem como postar, pelo menos para ter ideia do que ele esta fazendo.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts