comando top no processador multi-core

46

Estou usando o processador quad freescale IMX6. Quero saber se o topcomando lista o uso da CPU de todos os 4 núcleos ou de um único núcleo. Estou vendo o uso da CPU de um aplicativo ser o mesmo com 4 núcleos e com um único núcleo. Eu estava imaginando que o uso da CPU pelo aplicativo aumentaria em um único núcleo e diminuiria em 4 núcleos, mas não foi alterado.

user3818847
fonte
5
tente pressionar 1, enquanto top está em execução
Dani_l
Você poderia por favor elaborar. Como no que acontece se eu pressionar 1. Porque estou obtendo esse resultado inconsistente há 2 dias.
user3818847
1
Qual aplicativo é esse? Por que você acha que seu aplicativo deve usar vários núcleos, se disponível? Existem muitos aplicativos por aí que funcionam em uma única CPU / núcleo e para os quais ninguém se preocupou em reservar um tempo para paralisá-los.
Anthon
2
não. se vários núcleos, eles acumulam mais de 100%. 4 núcleos pode ficar tão alto quanto 800% com hyperthreading em cada núcleo
Dani_l
1
Eu gosto de usar htoppara isso.
Richard

Respostas:

67

Não tenho muita certeza do que você está perguntando aqui. Sim, topmostra o uso da CPU como uma porcentagem de uma única CPU por padrão. É por isso que você pode ter porcentagens> 100. Em um sistema com 4 núcleos, você pode ver até 400% de uso da CPU.

Você pode alterar esse comportamento pressionando I(que é Shift+ ie alterna "modo Irix") enquanto topestiver em execução. Isso fará com que mostre a porcentagem de energia disponível da CPU em uso. Como explicado em man top:

    1. %CPU  --  CPU Usage
       The task's share of the elapsed CPU time since the last screen
       update, expressed as a percentage of total  CPU  time.   In  a
       true  SMP environment, if 'Irix mode' is Off, top will operate
       in 'Solaris mode' where a task's cpu usage will be divided  by
       the  total  number  of  CPUs.  You toggle 'Irix/Solaris' modes
       with the 'I' interactive command.

Como alternativa, você pode pressionar o 1que mostrará uma análise do uso da CPU por CPU:

top - 13:12:58 up 21:11, 17 users,  load average: 0.69, 0.50, 0.43
Tasks: 248 total,   3 running, 244 sleeping,   0 stopped,   1 zombie
%Cpu0  : 33.3 us, 33.3 sy,  0.0 ni, 33.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  : 16.7 us,  0.0 sy,  0.0 ni, 83.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  : 60.0 us,  0.0 sy,  0.0 ni, 40.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8186416 total,  6267232 used,  1919184 free,   298832 buffers
KiB Swap:  8191996 total,        0 used,  8191996 free,  2833308 cached
terdon
fonte
1
com hyperthread Eu acredito que você pode ver até 800% como / proc / cpuinfo irá mostrar cada segmento como um cpu
Dani_l
@Dani_l sim, se o "núcleo" é físico ou virtual é irrelevante, ele é tratado como uma "CPU" por top. A saída mostrada é do meu laptop, que possui uma única CPU física com dois núcleos, cada um com um segundo núcleo lógico. O resultado é que topvê 4 núcleos.
terdon
Desculpem a nitpicking, no meu dia de trabalho temos que distinguir entre soquetes, núcleos e threads ao reservar recursos. Eu acho que o hábito permaneceu.
23414 Dani_l
9

basta clicar em '1' enquanto o topo estiver em execução

Abdullah
fonte
5
Esta resposta está nos comentários há anos ... adicione algo novo.
yeti 28/03
0

Se você deseja abrir topa exibição imediata de CPUs separadas sem precisar pressionar 1, você pode usar a -1opção

por exemplo:

top -1

...
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  : 44.7 us, 55.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  : 46.7 us, 53.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
...     
Leigh McCulloch
fonte