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 .