El X5560 es un único chip . Se ve así:
grep "physical id"
le dice que tiene UN procesador físico instalado.
Si quita el disipador de calor de la parte superior, puede ver esto:un solo muere físico (boca abajo) :
Si pudieras quitar ese dado y darle la vuelta, se vería así:
En ese único troquel físico hay cuatro núcleos de CPU físicos construido sobre el silicio :
grep "cpu cores"
le dice que su procesador tiene cuatro núcleos físicos incorporados.
Cada núcleo es un solo procesador con una unidad de punto flotante, varias unidades de ejecución de enteros, un par de pilas de registros y alguna otra magia que permite que cada núcleo único ejecute de manera efectiva dos flujos de instrucciones independientes (hilos) a la vez.
top
le dice que todos los procesadores y núcleos de su computadora, colectivamente, pueden ejecutar ocho flujos de trabajo independientes a la vez; le dice que el sistema operativo puede programar ocho subprocesos simultáneos para ejecutarse en cualquier momento.
¿Qué CPU estás usando? ¿Cuántos subprocesos 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 hilos presentes.
Creo que su CPU tiene 4 núcleos físicos y 2 núcleos lógicos por núcleo físico. Entonces es top
mostrando 8.
Además contenidos de /proc/cpuinfo
es algo dependiente de la implementación. Al igual que en el shell de Android rooteado, el cpuinfo
el archivo no contiene ningún término cpu cores
.
Sin embargo en cpuinfo
cada hilo se llama processor : X
, donde X
es el hilo no. Entonces, el último hilo no será el mismo que top/htop
salida.
Resultado de nproc --all
también será consistente con top/htop
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.
El cpu cores
entrada en /proc/cpuinfo
, nuevamente en x86, muestra la cantidad de núcleos físicos. Para encontrar el número de núcleos lógicos, como se usa en top
, deberías mirar el siblings
valor en su lugar:
cat /proc/cpuinfo | grep "siblings" | uniq
Esto se describe en detalle en la documentación del kernel.
lscpu
proporciona información sobre las CPU instaladas que es más fácil de entender que /proc/cpuinfo
(o más bien, presenta la misma información de una manera más simple).