Por que o comando "top" mostra um uso de CPU de 799%?


47

Estou executando um processo em um servidor Ubuntu de 4 núcleos. No entanto, o topcomando mostra que o uso da CPU é 799% o tempo todo.

Como isso pode ser possível? Eu sei que para CPUs com vários núcleos, é esperado mais de 100% de uso da CPU, mas 799% é um valor realmente alto.

Alguém pode me explicar por que e quando isso pode acontecer?

Editar:

Conforme sugestão de Gregory MOUSSAT, usando o htop, tenho o seguinte:

insira a descrição da imagem aqui


1
Os 4 núcleos possuem 2 threads cada (por exemplo, Intel Core i7)?
Renan

@ Renan, estou executando-o em thread único.
Arpssss

OK então. Porque eu já vi isso acontecer em alguns sistemas i7.
Renan

1
Mas a JVM é de thread único?
Ignacio Vazquez-Abrams

6
Isso realmente parece um i7 totalmente carregado, eu costumo ficar este vídeo quando a codificação
nohillside

Respostas:


65

A escala usada por topé 100% quando um núcleo é totalmente usado. Ou quando um núcleo é 20% e o segundo é 80%. Isso levou a resultados estranhos em computadores com vários núcleos, porque facilmente pode exceder 100%.
Se você tiver 8 núcleos, toppoderá exibir de 0% (sistema inativo) a 800% (potência total).

Seu programa está apenas usando seus 4 núcleos com hyperthreading (portanto, 8 núcleos virtuais) na capacidade máxima. Portanto, o topo oferece quase 8 x 100% = 800%.

Você não pode dizer explicitamente à JVM para usar um único encadeamento, ele usará vários encadeamentos para fazer seu trabalho, mesmo se você usar apenas um único encadeamento em seu aplicativo.

Você pode usar o htoputilitário como uma topalternativa melhor . Você verá seu programa usando todos os 8 núcleos.


Você pode limitar qualquer conjunto de processos a um conjunto de núcleos ou limitar a% de CPU. No entanto, não me lembro dos comandos. (cpulimit)
ctrl-alt-delor

+1 para htop, muito melhor do que no topo, ou superior
CodeLikeBeaker

+1 para htop. Isso me ajudou a acertar dois threads famintos por CPU!
Arun #

3
Todos hailhtop
fragamemnon 29/03
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.