Estou executando um processo em um servidor Ubuntu de 4 núcleos. No entanto, o top
comando 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:
linux
ubuntu
multi-core
top
Arpssss
fonte
fonte
Respostas:
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,
top
poderá 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
htop
utilitário como umatop
alternativa melhor . Você verá seu programa usando todos os 8 núcleos.fonte
htop