O número da CPU difere em 'About this computer' e / cpu / cpuinfo

1

Pergunta:

Gostaria de perguntar o que pode fazer com que haja duas informações diferentes sobre o número de processadores. Veja os relatórios abaixo.

Diálogo do sistema:

Se abrir a guia Configurações do sistema / Detalhes (mesmo que a roda de logout e Sobre este computador) eu recebo o seguinte:

  

Processador: CPU Intel® Xeon (R) E5-2680 v3 @ 2.50GHz × 16

CLI: cpuinfo (1)

No entanto, usando um comando de linha de comando, recebo o seguinte:

$ cat /proc/cpuinfo | grep processor | wc -l
24

Eu costumo acreditar no relatório da linha de comando - mas o que pode fazer com que eles sejam diferentes?

FIY: O monitor do sistema também mostra estatísticas para 24 núcleos

CLI: cpuinfo (2)

Como sugerido nos comentários, também executei a seguinte linha de comando

$ cat /proc/cpuinfo |grep 'core id'|sort|uniq|wc -l
12

Então agora eu ainda tenho um terceiro resultado! Este faz sentido como poderia ser que 12 núcleos com 2 processadores estão na máquina - mas como é possível que a caixa de diálogo do sistema conte 16?

    
por dmeu 28.05.2015 / 13:25

1 resposta

2

Acho que os núcleos de CPU são mais bem explicados em relação ao MultiProcessing Simétrico ( SMP ).

Intel Core 2 Duo Diagrama para mostrar o layout físico.

As informações da CPU do sistema são armazenadas no diretório /proc . Ele pode ser bem apresentado pelo software lscpu , conforme abaixo. Estou dando três exemplos de contraste: um desktop com 2 núcleos de CPU, um servidor com 48 e um Raspberry Pi com 4.

Desktop Computer
user@hostname:~$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 60
Stepping:              3
CPU MHz:               800.000
BogoMIPS:              5586.94
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              2048K
NUMA node0 CPU(s):     0,1

Server
user@hostname% lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                48
On-line CPU(s) list:   0-47
Thread(s) per core:    2
Core(s) per socket:    12
Socket(s):             2
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 62
Stepping:              4
CPU MHz:               1799.724
BogoMIPS:              3600.09
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              30720K
NUMA node0 CPU(s):     0-47

Raspberry Pi
jeff@clear-pi:~ $ lscpu
Architecture:          armv7l
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
Model name:            ARMv7 Processor rev 5 (v7l)
CPU max MHz:           900.0000
CPU min MHz:           600.0000

O total do servidor é 48, mas há 3 números que devem ser multiplicados para chegar lá: 2 * 12 * 2 = 48. As diferenças no arranjo do fabricante da CPU são aparentes quando se compara esse caminho.

Desktop
[Thread(s) per core: 1] * [Core(s) per socket: 1] * [Socket(s): 1] = 2

Server
[Thread(s) per core: 2] * [Core(s) per socket: 12] * [Socket(s): 2] = 48

Raspberry Pi
[Thread(s) per core: 1] * [Core(s) per socket: 4] * [Socket(s): 1] = 4  

lshw tem mais informações do sistema, mas não tão úteis aqui.

Desktop Computer
user@hostname:~$ sudo lshw
     *-cpu
          description: CPU
          product: Intel(R) Celeron(R) CPU G1840 @ 2.80GHz
          vendor: Intel Corp.
          physical id: 9
          bus info: cpu@0
          version: Intel(R) Celeron(R) CPU G1840 @ 2.80GHz
          slot: SOCKET 0
          size: 2800MHz
          capacity: 3800MHz
          width: 64 bits
          clock: 100MHz

Server
user@hostname% sudo lshw
     *-cpu:0
          description: CPU
          product: Intel(R) Xeon(R) CPU E5-2651 v2 @ 1.80GHz
          vendor: Intel Corp.
          physical id: 4
          bus info: cpu@0
          version: Intel(R) Xeon(R) CPU E5-2651 v2 @ 1.80GHz
          slot: SOCKET 0
          size: 1800MHz
          capacity: 4GHz
          width: 64 bits
          clock: 100MHz

Raspberry Pi
user@hostname:~ $ sudo lshw
*-cpu:0
          description: CPU
          product: cpu
          physical id: 0
          bus info: cpu@0
          size: 900MHz
          capacity: 900MHz
          capabilities: cpufreq

Por fim, esse método funcionou para mim em vários sistemas operacionais Linux / UNIX diferentes nos quais o lscpu não estava disponível. É uma variação de algo sugerido na questão e nos comentários, mas eu prefiro o comando curto e a saída simples.

user@hostname:~ $ grep -c ^processor /proc/cpuinfo
4

Referência: Como encontrar o número de núcleos de CPU, incluindo virtual?

Referência: link

Referência: link

    
por conman253 16.09.2016 / 00:22