O número da CPU difere em 'Sobre este computador' e /cpu/cpuinfo

O número da CPU difere em 'Sobre este computador' e /cpu/cpuinfo

Pergunta:

Gostaria de perguntar o que pode fazer com que existam 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 (o mesmo que Logout-wheel e Sobre este computador), recebo o seguinte relato:

Processador: CPU Intel® Xeon(R) E5-2680 v3 a 2,50 GHz × 16


CLI: cpuinfo (1)

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

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

Tenho tendência a acreditar no relatório da linha de comando - mas o que pode fazer com que sejam diferentes?

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


CLI: cpuinfo (2)

Conforme 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 tenho até um terceiro resultado! Este faz sentido, pois pode ser que 12 núcleos com 2 processadores estejam na máquina - mas como é possível que a caixa de diálogo do sistema conte 16?

Responder1

Acho que os núcleos da CPU são melhor explicados em relação ao Symmetric MultiProcessing (SMP).

insira a descrição da imagem aqui

Intel Core 2 DuoDiagrama para mostrar o layout físico. insira a descrição da imagem aqui


As informações da CPU do sistema são armazenadas no /procdiretório. Ele pode ser apresentado de forma organizada pelo lscpusoftware, 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.

Computador de mesa
usuário@nome do host:~$ lscpu
Arquitetura: x86_64
Modo(s) de operação da CPU: 32 bits, 64 bits
Ordem de bytes: Little Endian
CPU(s): 2
Lista on-line de CPU(s): 0,1
Thread(s) por núcleo: 1
Núcleo(s) por soquete: 2
Soquete(s): 1
Nós NUMA: 1
ID do fornecedor: GenuineIntel
Família de CPU: 6
Modelo: 60
Pisando: 3
CPUMHz: 800.000
BogoMIPS: 5586,94
Virtualização: VT-x
Cache L1d: 32K
Cache L1i: 32K
Cache L2: 256K
Cache L3: 2048K
NUMA node0 CPU(s): 0,1

Servidor
usuário@nome do host% lscpu
Arquitetura: x86_64
Modo(s) de operação da CPU: 32 bits, 64 bits
Ordem de bytes: Little Endian
CPU(s): 48
Lista on-line de CPU(s): 0-47
Thread(s) por núcleo: 2
Núcleo(s) por soquete: 12
Soquete(s): 2
Nós NUMA: 1
ID do fornecedor: GenuineIntel
Família de CPU: 6
Modelo: 62
Pisando: 4
CPUMHz: 1799,724
BogoMIPS: 3600,09
Virtualização: VT-x
Cache L1d: 32K
Cache L1i: 32K
Cache L2: 256K
Cache L3: 30720K
CPU(s) NUMA node0: 0-47

Raspberry Pi
jeff@clear-pi:~ $ lscpu
Arquitetura: armv7l
Ordem de bytes: Little Endian
CPU(s): 4
Lista on-line de CPU(s): 0-3
Thread(s) por núcleo: 1
Núcleo(s) por soquete: 4
Soquete(s): 1
Nome do modelo: Processador ARMv7 rev 5 (v7l)
MHz máximo da CPU: 900,0000
Mínimo de CPU MHz: 600,0000

O total do servidor é 48, mas existem 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 comparadas desta forma.

Área de Trabalho
[Thread(s) por núcleo: 1] * [Núcleo(s) por soquete: 1] * [Soquete(s): 1] = 2

Servidor
[Thread(s) por núcleo: 2] * [Núcleo(s) por soquete: 12] * [Socket(s): 2] = 48

Raspberry Pi
[Thread(s) por núcleo: 1] * [Núcleo(s) por soquete: 4] * [Soquete(s): 1] = 4  

lshwtem mais informações do sistema, mas não é tão útil aqui.

Computador de mesa
usuário@nome do host:~$ sudo lshw
     *-CPU
          descrição: CPU
          produto: CPU Intel(R) Celeron(R) G1840 a 2,80 GHz
          fornecedor: Intel Corp.
          identificação física: 9
          informações do ônibus: cpu@0
          versão: CPU Intel(R) Celeron(R) G1840 a 2,80 GHz
          slot: SOQUETE 0
          tamanho: 2800 MHz
          capacidade: 3800 MHz
          largura: 64 bits
          relógio: 100 MHz

Servidor
usuário@nome do host% sudo lshw
     *-cpu:0
          descrição: CPU
          produto: CPU Intel (R) Xeon (R) E5-2651 v2 a 1,80 GHz
          fornecedor: Intel Corp.
          identificação física: 4
          informações do ônibus: cpu@0
          versão: CPU Intel(R) Xeon(R) E5-2651 v2 a 1,80 GHz
          slot: SOQUETE 0
          tamanho: 1800 MHz
          capacidade: 4GHz
          largura: 64 bits
          relógio: 100 MHz

Raspberry Pi
usuário@nome do host:~ $ sudo lshw
*-cpu:0
          descrição: CPU
          produto: CPU
          ID físico: 0
          informações do ônibus: cpu@0
          tamanho: 900 MHz
          capacidade: 900 MHz
          capacidades: cpufreq

Por último, esse método funcionou para mim em vários sistemas operacionais Linux/UNIX diferentes onde o lscpu não estava disponível. É uma variação de algo sugerido na pergunta e nos comentários, mas prefiro o comando abreviado 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 virtuais?

Referência:https://stackoverflow.com/questions/6481005/how-to-obtain-the-number-of-cpus-cores-in-linux-from-the-command-line

Referência:https://stackoverflow.com/questions/19225859/difference-between-core-and-processor

informação relacionada