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%?
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) }'
+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.
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.
Respostas:
htop
nã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
vtop
saída que mostra todos os processos que compartilham as CPUs, não apenas os do seu contêiner.Se
vtop
nã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 atop
fonte 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:
fonte
top
relató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ácitoEsse tipo de inconsistência é geralmente indicativo do alto uso do processador pelos threads do kernel, que não são exibidos
htop
por padrão. Para exibi-los,htop
vá paraSetup
, entãoDisplay options
e desmarqueHide kernel threads
. Isso deve permitir que você veja os tópicos responsáveis.Você também pode desativar esse comportamento, definindo
hide_kernel_threads
como 0 in~/.htoprc
.fonte
Tente iniciar
htop
comsudo
. Você precisa de acesso root para ver os threads ativos na tabela.fonte