por que o htop meter mostra> 90% enquanto a tabela é de 0,0%?

12

Por que os medidores de progresso na parte superior da tela htopmostram o uso da CPU consistentemente acima de> 90%, enquanto os números na tabela abaixo mostram um sistema quase inativo com uso da CPU e carga média de 0,0%?

captura de tela htop parcial

Matt Wilson
fonte
1
Eu tenho exatamente o mesmo problema e também estou em um Dreamhost VPS (servidor virtual privado).
precisa saber é
BTW, veja o meu exemplo, é ainda pior: demo.ddesign.si/temp/dh3.png
duality_

Respostas:

6

htopnão sabe que está sendo executado em um ambiente virtualizado no nível do kernel (o Dreamhost VPS está usando a tecnologia VServer ). Em seguida, ele mostra o uso da CPU para todas as instâncias do SO que compartilham o mesmo kernel, não apenas o seu.

Dê uma olhada na vtopsaída que mostra todos os processos que compartilham as CPUs, não apenas os do seu contêiner.

Se vtopnão estiver instalado, e isso provavelmente é esperado para uma solução comercial, já que ninguém gostaria que um cliente visse quais processos estão executando outros clientes, não há como corrigir o problema dentro do seu contêiner, a menos que a topfonte de patch seja computada Uso da CPU em vez de obtê-lo nas estatísticas do kernel.

Isso pode ser feito resumindo o uso da CPU de todos os processos em execução no seu VServer, por exemplo:

ps aux | awk '
    {cpu+=$3; ram+=$6} 
    END {printf("cpu: %d%%, RAM: %.2f MiB\n",cpu,ram/1024) }'
jlliagre
fonte
+1 para a explicação; toprelatórios semelhantes ao htop nesta máquina. Vtop não testado como não instalado. Marcando isso como aceito porque responde "por quê?", Apesar de não resolver o implícito "eo que pode ser feito sobre isso?", Como que era tácito
Matt Wilkie
4

Esse tipo de inconsistência é geralmente indicativo do alto uso do processador pelos threads do kernel, que não são exibidos htoppor padrão. Para exibi-los, htopvá para Setup, então Display optionse desmarque Hide kernel threads. Isso deve permitir que você veja os tópicos responsáveis.

Você também pode desativar esse comportamento, definindo hide_kernel_threadscomo 0 in ~/.htoprc.

Chris Down
fonte
2
obrigado Chris. Eu fiz isso, mas os valores da tabela ainda são 0%. Talvez isso seja algo peculiar à execução em uma máquina virtual? O host é o servidor privado virtual (em Dreamhost.com).
214122
Para mim, esta é a resposta mais correta. Eu tinha um processo que ocupava muita CPU do kernel e não aparecia nos processos do espaço do usuário.
Patrick Chu
... exceto que os medidores de CPU HTop mostram o tempo do kernel em vermelho e o tempo do usuário em verde, e podemos ver claramente que está quase todo verde.
MathematicsOrchid
1

Tente iniciar htopcom sudo. Você precisa de acesso root para ver os threads ativos na tabela.

HAL 9001
fonte
Não sei como isso funciona ou não em ambientes virtualizados regulares, se existe algo como regular, mas não funciona no VPS do Dreamhost.
Matt Wilkie