
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:
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) :
Si pudieras quitar ese dado y darle la vuelta, se vería así:
En ese único dado físico hay cuatronúcleos de CPU físicosconstruido sobre el silicio:
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.
top
le 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/cpuinfo
muestra el número de núcleos físicos mientras que top
muestra 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 top
8.
Además, el contenido de /proc/cpuinfo
depende en cierta medida de la implementación. Al igual que en el shell de Android rooteado, el cpuinfo
archivo no contiene ningún término cpu cores
.
Sin embargo, en cpuinfo
cada hilo se nombra como processor : X
, donde X
está el hilo no. Entonces, el último número de hilo será el mismo que top/htop
el de salida.
El resultado de nproc --all
también será consistente contop/htop
Respuesta3
top
muestra 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 cores
entrada 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 siblings
valor:
cat /proc/cpuinfo | grep "siblings" | uniq
Esto se describe detalladamente en eldocumentación del núcleo.
lscpu
proporciona 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.