Pregunta:
Me gustaría preguntar qué puede causar que haya dos informaciones diferentes sobre la cantidad de procesadores. Vea los informes a continuación.
Diálogo del sistema:
Si abro la pestaña Configuración del sistema/Detalles (igual que la rueda Cerrar sesión y Acerca de esta computadora), recibo lo siguiente:
Procesador: CPU Intel® Xeon(R) E5-2680 v3 a 2,50 GHz × 16
CLI: información de CPU (1)
Sin embargo, al usar un comando de línea de comando, obtengo lo siguiente:
$ cat /proc/cpuinfo | grep processor | wc -l
24
Tiendo a creer en el informe de la línea de comandos, pero ¿qué puede hacer que sean diferentes?
FIY: el monitor del sistema también muestra estadísticas para 24 núcleos
CLI: información de CPU (2)
Como lo sugieren los comentarios, también ejecuté la siguiente línea de comando
$ cat /proc/cpuinfo |grep 'core id'|sort|uniq|wc -l
12
¡Así que ahora tengo incluso un tercer resultado! Esto tiene sentido ya que podría ser que haya 12 núcleos con 2 procesadores en la máquina, pero ¿cómo es posible que el cuadro de diálogo del sistema cuente 16?
Respuesta1
Creo que los núcleos de CPU se explican mejor en relación con el multiprocesamiento simétrico (SMP).
Intel Core 2 DúoDiagrama para mostrar el diseño físico.
La información de la CPU del sistema se almacena en el /proc
directorio. El software puede presentarlo claramente lscpu
, como se muestra a continuación. Estoy dando tres ejemplos para contrastar: una computadora de escritorio con 2 núcleos de CPU, un servidor con 48 y una Raspberry Pi con 4.
Computadora de escritorio usuario@nombre de host:~$ lscpu Arquitectura: x86_64 Modos operativos de CPU: 32 bits, 64 bits Orden de bytes: Little Endian CPU(s): 2 Lista de CPU(s) en línea: 0,1 Hilo(s) por núcleo: 1 Núcleo(s) por zócalo: 2 Enchufe(s): 1 Nodo(s) NUMA: 1 ID de proveedor: Intel genuino Familia de CPU: 6 Modelo: 60 Paso a paso: 3 CPUMHz: 800.000 BogotáMIPS: 5586.94 Virtualización: VT-x Caché L1d: 32K Caché L1i: 32K Caché L2: 256K Caché L3: 2048K CPU(s) del nodo NUMA0: 0,1 Servidor usuario@nombredehost%lscpu Arquitectura: x86_64 Modos operativos de CPU: 32 bits, 64 bits Orden de bytes: Little Endian CPU(s): 48 Lista de CPU(s) en línea: 0-47 Hilo(s) por núcleo: 2 Núcleo(s) por zócalo: 12 Enchufe(s): 2 Nodo(s) NUMA: 1 ID de proveedor: Intel genuino Familia de CPU: 6 Modelo: 62 Paso a paso: 4 MHz de CPU: 1799,724 BogoMIPS: 3600.09 Virtualización: VT-x Caché L1d: 32K Caché L1i: 32K Caché L2: 256K Caché L3: 30720K CPU(s) del nodo NUMA0: 0-47 Frambuesa Pi jeff@clear-pi:~$lscpu Arquitectura: armv7l Orden de bytes: Little Endian CPU(s): 4 Lista de CPU(s) en línea: 0-3 Hilo(s) por núcleo: 1 Núcleo(s) por zócalo: 4 Enchufe(s): 1 Nombre del modelo: Procesador ARMv7 rev 5 (v7l) CPU máx.MHz: 900.0000 CPU mín.MHz: 600.0000
El total del servidor es 48, pero hay 3 números que se deben multiplicar para llegar allí:2*12*2=48. Las diferencias en la disposición de los fabricantes de CPU son evidentes al comparar de esta manera.
Escritorio [Hilo(s) por núcleo: 1] * [Núcleo(s) por zócalo: 1] * [Zócalo(s): 1] = 2 Servidor [Hilo(s) por núcleo: 2] * [Núcleo(s) por zócalo: 12] * [Zócalo(s): 2] = 48 Frambuesa Pi [Hilo(s) por núcleo: 1] * [Núcleo(s) por zócalo: 4] * [Zócalo(s): 1] = 4
lshw
tiene más información del sistema, pero no es tan útil aquí.
Computadora de escritorio usuario@nombredehost:~$ sudo lshw *-UPC descripción: CPU Producto: CPU Intel(R) Celeron(R) G1840 a 2,80 GHz proveedor: Intel Corp. identificación física: 9 información del autobús: cpu@0 versión: CPU Intel(R) Celeron(R) G1840 a 2,80 GHz ranura: ENCHUFE 0 tamaño: 2800MHz capacidad: 3800MHz ancho: 64 bits reloj: 100MHz Servidor usuario@nombredehost% sudo lshw *-procesador:0 descripción: CPU Producto: CPU Intel(R) Xeon(R) E5-2651 v2 a 1,80 GHz proveedor: Intel Corp. identificación física: 4 información del autobús: cpu@0 versión: CPU Intel(R) Xeon(R) E5-2651 v2 a 1,80 GHz ranura: ENCHUFE 0 tamaño: 1800MHz capacidad: 4GHz ancho: 64 bits reloj: 100MHz Frambuesa Pi usuario@nombredehost:~ $ sudo lshw *-procesador:0 descripción: CPU producto: CPU identificación física: 0 información del autobús: cpu@0 tamaño: 900MHz capacidad: 900MHz capacidades: cpufreq
Por último, este método me ha funcionado en varios sistemas operativos Linux/UNIX diferentes donde lscpu no estaba disponible. Es una variación de algo sugerido en la pregunta y los comentarios, pero prefiero el comando abreviado y el resultado simple.
user@hostname:~ $ grep -c ^processor /proc/cpuinfo
4
Referencia:¿Cómo encontrar la cantidad de núcleos de CPU, incluidos los virtuales?
Referencia:https://stackoverflow.com/questions/19225859/difference-between-core-and-processor