Apenas elimine a saída da primeira iteração.
top -bn2 | awk '/^top -/ { p=!p } { if (!p) print }'
Estou logando em um nó que eu sei que tem quase 100% de uso de CPU (20 trabalhos de processo único usando quase 100% de cpu cada). Quando eu uso top
interativamente, a primeira iteração, isso me dá cerca de 20% ni
e a próxima iteração, e tudo após dar corretamente 95 +% ni
de uso. Eu estou querendo canalizar a saída de top
via top -bn1 > outfile
, mas a primeira iteração de top -bn1
(a única iteração) fornece o uso incorreto da CPU. Se eu usar top -bn2
, a segunda iteração fornecerá o uso correto, mas isso é uma saída em excesso.
Como posso obter top -bn1
corretamente para fornecer o uso da CPU? Estou escrevendo este script para estatísticas de uso, portanto, se necessário, posso voltar e executar uma análise nos processos de forma independente para gerar meu próprio uso de CPU, mas seria interessante se top
me desse o uso correto imediatamente morcego.
EDIT: mpdstat -P ALL
me fornece as mesmas estatísticas de uso inicial incorretas. Seria bom descobrir isso também. Eu posso usar mpstat -P ALL 1 1
, mas isso dá a saída duas vezes.
Existem ferramentas que exibem primeiro uma média calculada. Outras ferramentas têm uma primeira amostra incompleta. No geral, é aconselhável pular a primeira amostra para obter o resultado desejado.