comando top no ubuntu cpu multicore mostra o uso da cpu> 100%

16

insira a descrição da imagem aqui

Eu tenho o ubuntu rodando em uma CPU multi-core com 32 núcleos. Quando eu checo o uso da CPU usando o comando top, algumas vezes ele mostra mais de 100%, como 340%, 650% etc. Eu fiz algumas investigações e descobri que na verdade é uma soma de usos em diferentes núcleos. Por exemplo, se o 1º uso da CPU for 20%, o 2º for 30%, o 3º for 40% e o restante for 0%, então 'top' mostrará 20 + 30 + 40 = 90%.

É um pouco confuso e enganador. Acredito que o comando top deve exibir os usos da CPU entre 0 e 100, calculando os usos em todos os núcleos. No meu exemplo acima, eu esperaria - (90 * 100) / 3200 = 2,8125%. Isso é um bug com o comando top? deve ser considerado um aprimoramento para versões futuras? Por favor informar

Poonam Srivatava
fonte
Não é um bug, é um topcomportamento padrão e provavelmente é muito lte para alterá-lo. Porém, nada impede você de usar outro comando com uma convenção de relatórios diferente :)
0xF2 08/12/15
1
Por curiosidade, que CPU é essa? Um desses novos sistemas ARM64?
0xF2
CPU1 & CPU2 - CPU Intel (R) Xeon (E5) E5-2670 a 2,60 GHz (8 núcleos)
Poonam Srivatava

Respostas:

22

Por padrão, topexibe o uso da CPU como uma porcentagem de uma única CPU. Em sistemas com vários núcleos, é possível ver porcentagens de uso da CPU maiores que 100%. Você pode alternar esse comportamento pressionando Shift+ ienquanto top está sendo executado para mostrar a porcentagem geral de CPUs disponíveis em uso.

htopé uma alternativa melhor de top. Em htop, você pode ver como seus programas consomem todos os 32 núcleos.

Tung Tran
fonte
Olá - obrigado por essa visão. Eu sou novo em trabalhar em um sistema com vários núcleos, por isso estou me perguntando por que todos os núcleos estão sendo usados ​​nesse caso. Tenho comportamento semelhante às vezes quando não estou executando operações paralelas. Parece dependente do tamanho da minha operação e da memória necessária (estou trabalhando com o R). Tudo parece diminuir quando esse transbordamento para outras CPUs ocorre.
Marc na caixa