Uso da CPU de operações do sistema de arquivos não mostradas na parte superior

4

Eu corro o seguinte comando (que faz ls por 10.000 vezes) em um terminal Ubuntu Linux e uso o comando top para monitorar o uso da CPU. Enquanto top mostra que o uso total da CPU (linha 2) é de aproximadamente 48% (13,1% usuário + 34,9% do kernel), a lista abaixo não reflete o uso correto da CPU. Apenas 6,5% da CPU está associada ao processo bash. NOTA: Eu já desliguei o modo Irix para que os 6.5% estivessem na mesma escala da linha 2.

for i in {1..10000}; do (ls /tmp/ >/dev/null); done

Eu também tentei htop com a opção 'Ocultar os tópicos do kernel' desmarcada, mas obtive o mesmo resultado.

Qual parte do sistema está usando a CPU (o kernel?) e por que ela está oculta em top / htop ?

    
por junwang 06.05.2015 / 02:47

1 resposta

3

Você está executando muitos processos extremamente curtos. Você não vai vê-los muito na saída superior.

Top mede a atividade do sistema periodicamente (geralmente uma vez por segundo). A cada atualização, ele passa pela lista de processos e coleta estatísticas de cada processo. Dependendo da sorte do sorteio do agendamento, pode haver zero ou um ls do processo nesse ponto. Se top não vir um processo ls , ele não exibirá um. Mesmo que top veja um processo que é ls , obter as estatísticas não é atômico; se esse processo for interrompido entre o momento em que top enumera os processos e o tempo que leva para ler as estatísticas desse processo, o processo não será mostrado. Então, com muita frequência, não há nenhum processo ls para listar.

Mesmo quando há um processo ls , esse processo não é executado há muito tempo, por isso é responsável por uma parte insignificante do uso da CPU no último segundo. É provável que esteja em algum lugar perto da parte inferior da lista.

Como o uso da CPU não é medido atomicamente e é apenas uma aproximação, as estatísticas de uso total da CPU coletadas pelo kernel nem sempre correspondem à soma do processo coletado de estatísticas de uso por processo. As somas corresponderiam a processos suficientemente longos, mas quando há processos de curta duração, como este exemplo ilustra, eles podem diferir muito.

    
por 07.05.2015 / 00:52