disparity entre 'top''s CPU% e process CPU usage total

0

Tenho notado que às vezes há (grandes) diferenças entre o uso total de CPU relatado e um somatório da utilização de CPU por processo fornecida por aplicativos como top e wmtop .

Como exemplo: recentemente, executei um git filter-branch --index-filter em um repositório razoavelmente grande, com o comando de filtro de índice canalizando git ls-files por meio de um filtro grep e em xargs git rm --cached . Isso levou alguns minutos para ser executado; enquanto estava indo, notei que wmtop e top estavam exibindo um uso total de CPU alto (acima de 50% no meu computador de 2 núcleos), mas nenhum deles mostrava nenhum processo individual que estivesse usando uma quantidade significativa de tempo de CPU .

Alguns processos não são exibidos na lista de processos? Que tipos de processos são estes, e existe uma maneira de descobrir quanto tempo de CPU eles estão usando?

    
por intuited 01.10.2010 / 22:34

1 resposta

2

Você deve adicionar um instantâneo de tops output à sua pergunta para que possamos ver exatamente o que você vê.

A discrepância mais comum nos indicadores de uso do processador é a contagem do tempo de "espera de E / S", bem como o tempo "na verdade, ocupado pela CPU". O tempo de espera de E / S é quando um processo estaria ativamente fazendo algo, portanto poderia ter usado todo o intervalo de tempo que o planejador forneceu, mas gerou como está bloqueado à espera de E / S operações para completar.

Processos de execução curta também têm um efeito: se houver muitos processos iniciando, fazendo algo pequeno, e depois fechando, eles podem não ser vistos pelo topo ou por algo semelhante (especialmente se você não tiver atualização máxima frequentemente) porque eles fez sua coisa e parou entre as atualizações. Mesmo que eles não estivessem presentes quando o top pegasse suas amostras (então não aparecem na lista de tarefas), as contagens globais no sistema de arquivos /proc ainda apareceriam desde a última amostra que a CPU estava ocupada para os ticks do X scheduler e inativa para Y .

    
por 02.10.2010 / 00:03