comando superior en procesador multi-core

46

Estoy usando el procesador cuádruple IMX6 de freescale. Quiero saber si el topcomando enumera el uso de CPU de los 4 núcleos o de un solo núcleo. Veo que el uso de la CPU de una aplicación es el mismo con 4 núcleos y con un solo núcleo. Supuse que el uso de la CPU por parte de la aplicación aumentará en un solo núcleo y disminuirá en 4 núcleos, pero no ha cambiado.

usuario3818847
fuente
55
intente presionar 1 mientras la parte superior se está ejecutando
Dani_l
¿Podría por favor dar más detalles? Como en lo que sucede si presiono 1. Debido a que obtengo este resultado inconsistente desde hace 2 días.
user3818847
1
¿Qué aplicación es esa? ¿Por qué crees que tu aplicación debería usar varios núcleos si están disponibles? Existen muchas aplicaciones que funcionan en una sola CPU / núcleo y para las cuales nadie se molestó en tomarse el tiempo para paralizarlas.
Anthon
2
No. Si hay múltiples núcleos, se acumulan a más del 100%. 4 núcleos pueden llegar al 800% con hyperthreading en cada núcleo
Dani_l
1
Me gusta usar htoppara esto.
Richard

Respuestas:

67

No estoy completamente seguro de lo que estás preguntando aquí. Sí, topmuestra el uso de la CPU como un porcentaje de una sola CPU de forma predeterminada. Es por eso que puede tener porcentajes que son> 100. En un sistema con 4 núcleos, puede ver hasta un 400% de uso de CPU.

Puede cambiar este comportamiento presionando I(eso es Shift+ iy alterna "Modo Irix") mientras se topestá ejecutando. Eso hará que muestre el porcentaje de potencia de CPU disponible que se está utilizando. Como se explica en 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.

Alternativamente, puede presionar lo 1que le mostrará un desglose del uso de la 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
fuente
1
con hyperthread, creo que puedes ver hasta un 800% ya que / proc / cpuinfo mostrará cada hilo como una CPU
Dani_l
@Dani_l sí, si el "núcleo" es físico o virtual es irrelevante, es tratado como una "CPU" por top. La salida que muestro es de mi computadora portátil que tiene una sola CPU física con dos núcleos, cada uno de los cuales tiene un segundo núcleo lógico. El resultado es que topve 4 núcleos.
terdon
Perdón por las dudas, en mi trabajo diario tenemos que distinguir entre enchufes, núcleos e hilos al reservar recursos. Supongo que el hábito se mantuvo.
Dani_l
9

simplemente haga clic en '1' mientras la parte superior se está ejecutando

Abdullah
fuente
55
Esta respuesta está en los comentarios desde hace años ... por favor agregue algo nuevo.
desapareció el
0

Si desea abrir topinmediatamente mostrando CPU separadas sin necesidad de presionar 1, puede usar la -1opción.

p.ej:

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
fuente