script para registrar todas as estatísticas de um processo específico

4

Eu quero monitorar o uso da CPU, uso de leitura / gravação de disco para um processo específico, digamos ./myprocess .

Para monitorar o comando CPU top parece ser uma boa opção e para ler e escrever iotop parece ser útil.

Por exemplo, para monitorar leitura / gravação a cada segundo, eu uso o comando iotop -tbod1 | grep "myprocess" .

Minha dificuldade é que eu só quero apenas três variáveis para armazenar, ou seja, leitura / seg, gravação / seg, uso da CPU / seg. Você poderia me ajudar com um script que combina as saídas das três variáveis acima mencionadas de top e iotop para serem armazenadas em um arquivo de log?

Obrigado!

    
por aruva arumugam 26.03.2012 / 16:56

4 respostas

1

Que tal PidStat ? Tentaste? Você pode precisar do Pid para o processo que deseja monitorar, mas isso deve ser bem fácil de obter com o comando ps e um pouco de awk chop-chopping.

Faz parte do pacote sysstat que você pode instalar em sistemas baseados em .deb digitando apt-get install sysstat

    
por 27.03.2012 / 00:52
1

Você pode tentar usar o prtstat ( sudo apt-get install psmisc ):

watch -n1 prtstat <PID> | tee mylog.log

ele vai despejar as estatísticas do processo a cada segundo. Se você estiver interessado em analisar esses dados, use a versão bruta (-r).

No exemplo, se você quiser, você pode estender o comando acima para:

prtstat -r 30557 | grep -w utime | awk '{print $4}'
    
por 31.07.2012 / 18:00
1

Você pode usar o audria para esta tarefa:

audria -d 1 $(pidof myprocess) | awk -F "," '{print $7, $28, $32}'

Isto irá definir o atraso para 1 segundo, monitorar myprocess e imprimir a atual CPU (campo 7), ler bytes / s (campo 28) e escreve bytes / s (campo 32). Os contadores de leitura / gravação aqui excluem bytes em cache, se você quiser incluí-los, escolha os campos 26 e 30 .

O audria também é capaz de executar o seu processo para monitorá-lo desde o início, se necessário. Você também pode escolher um intervalo mais curto ou especificar vários PIDs para assistir.

    
por 15.08.2012 / 13:22
0

Você pode tentar ver o conteúdo de /proc/$PID/status periodicamente; isso deve lhe dar uma boa quantidade das informações que você está procurando.

    
por 26.06.2012 / 02:33