¿Por qué top muestra una cantidad de núcleos diferente a cpuinfo?

¿Por qué top muestra una cantidad de núcleos diferente a cpuinfo?

Cuando ejecuto top, muestro CPU 0-7. Cuando lo hago:

cat /proc/cpuinfo | grep "cpu cores" | uniq

Yo obtengo:

cpu cores : 4

Si busco "identificación física", tengo 1.

Estoy pensando que mi comando es incorrecto y arriba es correcto. Esta no es una máquina virtual y es un servidor físico, RedHat. ¿Qué estoy haciendo mal?

No estoy seguro de que esto responda:

¿Cómo saber el número de núcleos de un sistema en Linux?

Número de procesadores en /proc/cpuinfo

Editar: ¿Estoy en lo cierto con esa identificación física? Si solo muestra 1, entonces tengo un chip físico en la placa base.

Editar: Es una CPU Intel(R) Xeon(R) X5560 a 2,80 GHz, pero la identificación física es 1, y pensé que sería 0, pero no hay una identificación física 0 en cpuinfo.

Editar: Si es importante, estoy tratando de averiguar sobre las licencias dónde hacen .5 el recuento de núcleos.

Respuesta1

El X5560 es un únicochip. Se parece a esto:

ingrese la descripción de la imagen aquí

grep "physical id"le está diciendo que tiene UN procesador físico instalado.

Si quita el disipador de calor de la parte superior, podrá ver esto: un único elemento físico.morir(boca abajo) :

ingrese la descripción de la imagen aquí

Si pudieras quitar ese dado y darle la vuelta, se vería así:

ingrese la descripción de la imagen aquí

En ese único dado físico hay cuatronúcleos de CPU físicosconstruido sobre el silicio:

ingrese la descripción de la imagen aquí

grep "cpu cores"le está diciendo que su procesador tiene cuatro núcleos físicos integrados.

Cada núcleo es un procesador único con una unidad de punto flotante, varias unidades de ejecución de números enteros, un par de pilas de registros y alguna otra magia que permite a cada núcleo ejecutar de manera efectiva dos flujos de instrucciones independientes (hilos) a la vez.

ingrese la descripción de la imagen aquí

tople está diciendo que todos los procesadores y núcleos de su computadora, en conjunto, pueden ejecutar ocho flujos de trabajo independientes a la vez; le está diciendo que el sistema operativo puede programar ocho subprocesos simultáneos para su ejecución en cualquier momento dado.

Respuesta2

¿Qué CPU estás usando? ¿Cuántos hilos hay por núcleo físico?

cat /proc/cpuinfomuestra el número de núcleos físicos mientras que topmuestra el número total de subprocesos presentes.

Creo que su CPU tiene 4 núcleos físicos y 2 núcleos lógicos por núcleo físico. Entonces muestra top8.

Además, el contenido de /proc/cpuinfodepende en cierta medida de la implementación. Al igual que en el shell de Android rooteado, el cpuinfoarchivo no contiene ningún término cpu cores.

Sin embargo, en cpuinfocada hilo se nombra como processor : X, donde Xestá el hilo no. Entonces, el último número de hilo será el mismo que top/htopel de salida.

El resultado de nproc --alltambién será consistente contop/htop

Respuesta3

topmuestra una “CPU” por CPU lógica; en x86, ese es el producto de la cantidad de sockets en el sistema, por la cantidad de núcleos físicos por socket, por la cantidad de subprocesos por núcleo.

La cpu coresentrada en /proc/cpuinfo, nuevamente en x86, muestra la cantidad de núcleos físicos. Para encontrar la cantidad de núcleos lógicos, como se usa en top, debes mirar el siblingsvalor:

cat /proc/cpuinfo | grep "siblings" | uniq

Esto se describe detalladamente en eldocumentación del núcleo.

lscpuproporciona información sobre las CPU instaladas que es más fácil de entender /proc/cpuinfo(o mejor dicho, presenta la misma información de una manera más simple).

Respuesta4

cpuinfo muestra los núcleos reales, mientras que htop/top muestra tanto los núcleos como los subprocesos como núcleos. Lo más probable es que tengas 4 núcleos y 4 subprocesos, por eso.

información relacionada