Por que o htop não exibe os mesmos processos que o top?

18

Às vezes, eu tenho um servidor doméstico executando com uma taxa de uso de CPU alta de cerca de 50 a 70 por cento.

No htopmeu gerenciador de processos favorito, posso classificar os processos pelo uso da CPU, mas geralmente não há nenhum processo consumindo mais de 0% da CPU. Por outro lado, htopexibe todo o uso da CPU do sistema, que é de cerca de 50%, como dito anteriormente.

Eu acho que existe uma explicação fácil para isso, mas eu não sei.

Talvez haja alguns processos ocultos? Mas mesmo executá-lo como root não mostra mais processos.

EDITAR:

Eu examinei top, o que está mostrando (pelo menos) mais dois processos:

  230 root      20   0     0    0    0 R 37.4  0.0 107:06.59 md127_raid5                                          
20403 root      35  15     0    0    0 D  9.6  0.0   2:45.78 md127_resync   

Portanto, meu ataque mdadm está atualmente em ressincronização, o que foi confirmado quando eu o exibi /proc/mdstat. (Veja o primeiro comentário.)

Portanto, isso muda a questão: "Por que o htop não exibe os mesmos processos que o top?"

leemes
fonte
topmostra mais processos. O processo em questão pertence mdadm, que atualmente está realizando uma ressincronização, como descobri. topmostra o processo sob o nome md127_raid5e md127_resync. O primeiro está em execução desde a inicialização do sistema, o segundo desde que a ressincronização foi acionada. Portanto, isso muda a questão: "Por que o htop não exibe os mesmos processos que o top?"
Leem

Respostas:

19

Por que o htop não exibe os mesmos processos que o top?

Porque htopoculta os threads do kernel por padrão, enquanto top não. Você pode desativar esta opção em F2-settings in htop.

  1. Antes:

    insira a descrição da imagem aqui

  2. Desmarque a configuração Ocultar threads do kernel , pressione Escpara sair da tela em vez de F10.

    insira a descrição da imagem aqui

  3. Observe o novo número de kthr(kthreads) no cursor e todos os novos k...processos que apareceram. Você pode classificá-los por CPU, etc., como de costume. Além do nome (começa com um k , tem um /no final), você também pode identificar os threads do kernel por seus PIDs muito baixos (observe os 1, 2, 3 ... 17 na captura de tela?)

    insira a descrição da imagem aqui

ish
fonte
Muito obrigado. Isso é algo que eu queria saber há anos! E a solução é tão simples ... Obrigado pelas imagens agradáveis :)
leemes
11
A tecla de atalho é H (shift + h).
glebm
2
@glebm (atrasado, mas acho que vale a pena adicionar;)): A tecla de atalho para exibir os threads do kernel é K(Shift + k). A tecla de atalho H(Shift + h) exibe (ou oculta, se já estiver exibida) threads da terra do usuário .
Henning Kockerbeck