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

6

Estou procurando uma maneira de gravar a utilização da CPU em um arquivo de texto a cada 10 segundos.

Como eu poderia configurar isso? Estou executando o Ubuntu 12.04.

    
por user214386 05.04.2013 / 12:32

2 respostas

3

A utilização da CPU é fácil:

Na linha de comando:% while ( sleep 10 ) ; do cat /proc/loadavg >> mylogfile ; done

O comando sleep dormirá 10 segundos e retornará com o valor de retorno 0 (também conhecido como sucesso). Nós abusamos disso para obter um sono compacto (verdadeiro) 10.

/ proc / loadavg contém as médias de carga de agora , nos últimos 5 minutos e nos últimos 15 minutos. Se você está registrando a cada 10 segundos, então você está interessado apenas no primeiro valor.

Ou em um script (usando o bash).

#!/bin/sh
# Using /bin/sh which is guaranteed to be present on any posix system.
# If you want to add shell specific parts in the script than replace this.
# E.g. if you want to use bash specific stuff then change it to:
# #!/usr/bin/env bash
# Make sure that the shebang is on the first line of the script (no comments above it!)

# While true, pause 10 seconds, then append information to Mylogfile
#
while ( sleep 10 ) ; do cat /proc/loadavg >> mylogfile ; done


Podemos adicionar um cat / proc / meminfo às informações que anexamos ao arquivo de log. / proc / meminfo é bastante extenso e vai registrar muito. Se você quiser filtrar apenas informações específicas da memória, adicione-as à postagem.

A forma mais simples disso resultaria em: (% while (sleep 10) ; do cat /proc/loadavg /proc/meminfo >> mylogfile ; done ).

    
por 05.04.2013 / 13:04
1

Se você executar atop como um daemon, ele registrará uma grande quantidade de dados de estado do sistema: uso da CPU, lista de processos, E / S de disco, uso de memória e muito mais. Você pode então percorrer os dados com atop -r [filename] .

    
por 05.04.2013 / 13:26