Escrevendo um log de uso da CPU / RAM durante um período de tempo para arquivar no CentOS

8

Estou procurando um aplicativo ou uma linha de código que me permita observar um processo, salvar as informações em diversas variáveis e, em seguida, colocar as informações coletadas em um arquivo.

Eu tenho tentado com variações de top , mas sem sorte. Estou executando vários servidores virtuais CentOS, a VM tem 2 GB de RAM, 2 processadores.

Um script que funciona durante um período de tempo especificado enquanto escrevo linhas com as informações em um arquivo de texto, para que no final eu possa ter um tipo de tabela com os dados funcionaria.

Vou enfatizar o teste do servidor e gostaria de ter os dados para fazer algumas estatísticas.

    
por keponk 08.06.2010 / 00:05

4 respostas

11

O padrão ps é suficiente.

while true; do ps o pcpu,rsz -p $pid | tail -n1 >>usage.log; sleep $interval; done

resultado:

0.0  3352
0.3 31640
0.4 36924
0.5 36052
...

O primeiro campo é o uso da CPU em%, o segundo é o uso da memória física em kbytes.

    
por 08.06.2010 / 00:49
1

Eu sugeriria sadc / sar .

    
por 08.06.2010 / 01:23
1

Se você se preocupa com o tempo exato e deseja a CPU em porcentagem:

watch --precise -n 1 'top -b -n 1 -p [PID] | tail -n 1 | awk "{print \}" >> [PID].log'
    
por 15.10.2014 / 18:29
0

Você está tentando observar quanto tempo de CPU um determinado processo está exigindo.

Eu sugeriria ferramenta de estatísticas da CPU para o CentOS? mas isso é para todo o sistema, não apenas um processo.

Qualquer processo mostrará o tempo de CPU na saída de ps:

$ ps -ef | egrep blah
root     13988 11152  0 Dec16 ?        00:00:05 sshd: xxx [priv]
xxx      14024 13988  0 Dec16 ?        00:06:00 sshd: xxx@pts/0
xxx      14032 14024  0 Dec16 pts/0    07:00:00 -bash
root      1194   679  0 Apr24 ?        2-05:15:14 [kswapd0]
root      1195   679  0 Apr24 ?        2-06:35:49 [kswapd1]
  • 00:00:00 é horas / minutos / segundos de cpu. Isso vai se acumular.
  • Você precisará de permissões para ver isso se o usuário não for você.
  • Quando esse valor ficar acima de um dia, o formato será alterado. acima são 2 dias. Sua rotina de análise terá que lidar com isso.

Neste ponto, analise a saída com o Python, trabalhe com alguma data matemática e você é de ouro.

    
por 27.12.2013 / 14:42