Parece que há uma combinação de coisas acontecendo na saída / configuração do htop que resultam em parecer que 'nada' é responsável pela utilização de 100% da CPU relatada na barra de exibição. Esta é uma máquina de núcleo único (VM)?
processos do kernel:
Por padrão, o htop não exibe processos do kernel na lista de threads (o top faz). Você pode alternar a exibição dos processos do kernel pressionando Shift + k . Como a seção Tasks:
não lista threads do kernel (kthr), está claro que eles estão ocultos no momento.
ordenar por utilização da CPU:
Você não tem a lista de processos atualmente classificada pela utilização da CPU. Pressione a tecla F6 e use as teclas de seta para selecionar PERCENT_CPU. Isso permitirá que você veja os processos quase certamente ocultos no momento (fora da parte inferior da lista) que estão usando uma porcentagem diferente de zero da CPU.
Barra indicadora de utilização da CPU:
Uma pista de que os processos do kernel não estão sendo exibidos é a barra cpu, que mostra que (aproximadamente) 40% da CPU está sendo usada pelo kernel, o que podemos dizer pela cor das várias partes que constituem a CPU 'visual' representação htop fornece. As cores são definidas como:
System wide cpu usage:
Blue: low priority processes (nice > 0)
Green: normal (user) processes.
Red: kernel processes.
Yellow: IRQ time.
Magenta: Soft IRQ time.
Grey: IO Wait time.
ainda vê uma discrepância?
Um método para obter a média de tempo em vez de números de utilização de CPU efetivamente instantâneos é discutido na resposta a uma pergunta um pouco semelhante em serverfault.com . Coletar esses dados e comparar com a utilização da CPU de 100% permitirá obter uma imagem muito mais clara do que está atrapalhando a sua CPU. Outra resposta à mesma pergunta refere-se a uma ferramenta chamada top no topo, que também é muito útil para analisar a utilização da CPU ao longo do tempo, bem como visualizações instantâneas de tipo de instantâneo, como aquelas que o htop fornece principalmente.
single core
Uma vez que parece que seu servidor está operando com apenas um único núcleo, o impacto das mudanças de contexto no modo kernel pode ser mais significativo - quando o código está sendo executado no contexto do kernel (interrupções, algumas operações de sincronização de E / S, etc.) não há lugar para o Agendador de sistema operacional para colocar processos do usuário para rodar, uma capacidade que estamos acostumados com o uso quase universal de hoje das máquinas SMP .