Eu realmente não sabia a melhor maneira de fazer a minha pergunta, daí você recebe uma pergunta horrivelmente nomeada.
Eu vou explicar o que eu quero fazer, talvez isso ajude você a me ajudar.
Eu gostaria que minha máquina Linux monitorasse continuamente (a cada 10 minutos) todos os processos da minha máquina. As informações de cada processo que eu preciso é o nome, uso da CPU, memória alocada (virtual) e memória residente (ram).
Se esses relatórios periódicos fossem examinados, eles se pareceriam com algo assim:
PROCESS CPU RAM VIRTUAL
name1 % MB MB
name2 % MB MB
...etc..etc
Esses relatórios devem ser armazenados de forma que eu possa acessá-los em uma data posterior, fornecendo um escopo de data / hora (intervalo). Por exemplo, se eu quiser ver o histórico dos meus processos a partir das 12:00:00 de 1.12.12 até às 12:00:00 2.12.12 eu posso - e deve dar-me a história dos processos para cada 10 minutos entre aqueles Bordas de data / hora.
O formato do retorno não é importante, e será manipulado por um script de qualquer maneira e pode ser modificado em qualquer coisa que eu precise.
Eu examinei algumas coisas até agora, mas não encontrei algo que claramente atenda às minhas necessidades. Entre as coisas que eu procurei: sar , free (1) , top (1) .. e algumas outras coisas.
Deve ser um problema simples, eu já posso ver todas essas informações simplesmente olhando para o meu htop
, mas eu preciso apenas de uma ferramenta que irá reunir os campos desejados para cada processo a cada 10 minutos, e então também me deixe extrair fatias desse dados baseados em escopos de data / hora (intervalos).
Nota: Eu tenho pouca experiência com o Linux, por isso, forneça informações detalhadas.
nota 2: A saída desejada será algo assim (depois de receber o intervalo desejado)
CPU USAGE BY PROCESS:
proc_nameA 1,2,2,2,2,2...... numbers represent % usage every 10 minutes...
proc_nameB 4,3,3,6,1,2......
A mesma ideia com as outras informações.
Respostas:
Tente
atop
.Ele registrará todas essas informações do sistema a cada 5 ou 10 minutos (dependendo do que sua distribuição escolheu para você) como um daemon e as colocará em arquivos binários. Então use
Para visualizar o conteúdo do arquivo de log padrão atual interativamente. É como
htop
com algumas informações extras de I / O que permitem que você volte no tempo e veja o que aconteceu nesses momentos. Pressione tpara avançar e Shift+ tpara voltar.Você também pode apontar para um intervalo de tempo específico. A partir do manpage:
Não é apenas configurável sobre o que escrever nos arquivos brutos.
Eu sugiro que você leia mais a manpage do topo também para começar, por exemplo, lendo o conteúdo do logfile de ontem.
Aqui está como minha máquina 'zarafa' estava tocando esta manhã entre 7:35:40 e 7:45:40:
fonte