Como posso obter valores instantâneos de carga da CPU?

5

Eu fiz um aplicativo cliente-servidor no qual, com base no uso da CPU e nas condições de carga, ele atende a uma solicitação de arquivo para o usuário.

Estou usando /proc/loadavg values para isso. Mas este utilitário fornece valores médios ao longo de pelo menos 1 minuto.

Eu quero valores em média em muito menos tempo, como 1 segundo ou 5 segundos.

    
por Harshit 29.11.2012 / 18:49

1 resposta

1

Que tal analisar a saída de mpstat do pacote sysstat ? Você pode obter estatísticas para cada processador e definir o intervalo (abaixo é para o intervalo de 2s).

Exemplo de saída:

$ mpstat -P ALL 2
Linux 3.5.0-19-generic (ubuntu)     11/30/2012  _x86_64_    (4 CPU)

08:34:28 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
08:34:30 AM  all    1.01    0.00    1.26    0.00    0.00    0.13    0.00    0.00   97.61
08:34:30 AM    0    2.50    0.00    1.50    0.00    0.00    0.50    0.00    0.00   95.50
08:34:30 AM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
08:34:30 AM    2    1.01    0.00    3.02    0.00    0.00    0.00    0.00    0.00   95.98
08:34:30 AM    3    0.50    0.00    0.50    0.00    0.00    0.00    0.00    0.00   99.00

Como alternativa, você pode implementar o algoritmo sozinho. Dê uma olhada aqui e aqui .

Outra maneira de fazer isso seria monitorar a diferença no tempo ocioso versus outro tempo de uso em /proc/stat no intervalo de tempo definido e calcular a carga com base nisso. Veja mais informações sobre / proc / stat .

    
por Ian B. 29.11.2012 / 20:55