Estou tentando obter uma leitura precisa da minha CPU usada (em porcentagem) de top
. Este é o comando que estou executando para testar:
top -n1 | awk '/Cpu\(s\):/ {print $2}'
Isso retorna:
10.7%us,
Qual é o pedaço de dados adequado que eu quero. No entanto, toda vez que executo o comando, obtenho a mesma saída, mesmo aplicando cargas diferentes no meu sistema (sem mencionar, htop
diz que meu uso é diferente). Parece que sempre que eu começo top
, o uso da minha CPU é o mesmo. Somente depois de alguns quadros ele me fornece valores adequados.
Não parece que eu possa analisar a saída do top dessa maneira, então estou procurando outros aplicativos confiáveis que me fornecerão uma leitura precisa do shell. Eu realmente gosto de como htop
pode me dar uma leitura por núcleo.
Eu tentei iostat
e mpstat
eles parecem dar valores imprecisos e "lentos para mudar".
fonte
Respostas:
Eu uso este script (a partir desta discussão nas placas do Arch ):
fonte
Confira o sar também. As implementações podem variar amplamente de nix para nix, mas devem fornecer estatísticas básicas do sistema, em determinados snapshots. Eu não tenho certeza o quão preciso os valores estão no ponto em que o comando é inicializado pela primeira vez, mas você pode jogar ao redor para ver como ele se compara ao
top
,iostat
etc.A saída é baseada em colunas, como a parte superior, portanto, você poderá canalizar a saída para
awk
oucut
manipular os resultados.fonte
sar
antes com resultados mistos. Vou seguir a resposta de @ jasonwryan aqui porque posso modificá-la facilmente para representar o uso com os dois núcleos da CPU.Você já olhou
collectl
? É útil porque você pode adaptar a saída às suas necessidades. Veja: http://collectl.sourceforge.net/fonte
O que descobri é semelhante à pessoa que fez a pergunta acima, pelo menos no CentOS 6. Se eu rodar no topo do modo em lote por apenas uma iteração, ele parece coletar a mesma figura, quase como se sua tendência fosse começar com o que ele lembra pela última vez a exibição. Top parece precisar acumular pelo menos alguns números para obter deltas para fornecer porcentagens corretas. Depois de testar mais de 10 iterações, descobri que a segunda figura exibida mostrava diferenciação suficiente em cada execução. Portanto, é fácil obter essa linha via
Eu gosto de incorporar isso com tempo de atividade para carregamento e um filtro grep de processos selecionados do ps, como consultas do postgres. Um monitor muito simples pode ser expresso com o alias:
fonte