Obtém o uso da CPU no linux

0

Eu pesquisei na rede, mas não encontrei uma solução satisfatória. Existe alguma boa maneira de obter a utilização média da CPU para toda a CPU e todos os processos? Como o gerenciador de tarefas do Windows.

Eu tentei os seguintes comandos, enquanto o sistema está iniciando um servidor Minecraft. Uma tarefa um pouco intensa, quando está executando um Raspberry Pi:

echo $[100-$(vmstat 1 2|tail -1|awk '{print $15}')]

Se eu executar esse comando a cada segundo, recebo tudo de 0% a 80%. Não tenho certeza se é confiável.

cat <(grep 'cpu ' /proc/stat) <(sleep 1 && grep 'cpu ' /proc/stat) | awk -v RS="" '{print ($13-$2+$15-$4)*100/($13-$2+$15-$4+$16-$5)}'

Isso só dá um resultado entre 0% e 2%

grep -P '^processor' /proc/cpuinfo|wc -l

Nunca ultrapassa os 25%, o que também é bastante improvável

Eu li que 'top' não mostra o uso real da cpu, mas algo com o uso da cpu entre as atualizações ou algo assim.

Existe alguma outra maneira? De preferência, uma solução onde eu não tenho que instalar nada ..

    
por Daniel Jørgensen 09.03.2017 / 22:52

1 resposta

0

A precisão do uso da CPU vem da retenção do estado da CPU entre as leituras, de modo que o uso durante todo o período seja obtido. A maioria das soluções obtém apenas o uso de quando a leitura é feita, ou a média é feita em períodos arbitrários.

Se você realmente precisa de precisão, precisa medir com muita frequência e centralizar os resultados. Dessa forma você pode até detectar picos. Dependendo de muitos fatores, observe que não é de forma alguma anormal para o uso da CPU não exceder 25%.

Para processos, você terá que usar os PIDs. Veja algumas soluções práticas aqui .

    
por 10.03.2017 / 09:41