Interpretando a saída de cat / proc / cpuinfo

22

Como interpretar as informações impressas pelo seguinte comando no Linux

cat /proc/cpuinfo

No meu laptop, recebo a seguinte saída:

[gaurish108: ~] $ cat / proc / cpuinfo (02-09 15:34)
processador: 0
vendor_id: GenuineIntel
família de CPUs: 6
modelo: 37
nome do modelo: CPU Intel (R) Core (i) i3 M 330 @ 2.13GHz
passo: 2
cpu MHz: 933.000
tamanho do cache: 3072 KB
ID físico: 0
irmãos: 4
id principal: 0
núcleos da CPU: 2
apicid: 0
apicídio inicial: 0
fdiv_bug: no
hlt_bug: no
f00f_bug: no
coma_bug: no
fpu: sim
fpu_exception: yes
nível de CPU: 11
wp: sim
sinalizadores: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc dfxx dx pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips: 4256.49
tamanho do clflush: 64
cache_alignment: 64
tamanhos de endereço: 36 bits físico, 48 bits virtual
gerenciamento de energia:

processador: 1
vendor_id: GenuineIntel
família de CPUs: 6
modelo: 37
nome do modelo: CPU Intel (R) Core (i) i3 M 330 @ 2.13GHz
passo: 2
cpu MHz: 933.000
tamanho do cache: 3072 KB
ID físico: 0
irmãos: 4
id principal: 0
núcleos da CPU: 2
apicid: 1
apicídio inicial: 1
fdiv_bug: no
hlt_bug: no
f00f_bug: no
coma_bug: no
fpu: sim
fpu_exception: yes
nível de CPU: 11
wp: sim
sinalizadores: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc dfxx dx pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips: 4256.40
tamanho do clflush: 64
cache_alignment: 64
tamanhos de endereço: 36 bits físico, 48 bits virtual
gerenciamento de energia:

processador: 2
vendor_id: GenuineIntel
família de CPUs: 6
modelo: 37
nome do modelo: CPU Intel (R) Core (i) i3 M 330 @ 2.13GHz
passo: 2
cpu MHz: 933.000
tamanho do cache: 3072 KB
ID físico: 0
irmãos: 4
ID do núcleo: 2
núcleos da CPU: 2
apicid: 4
apicídio inicial: 4
fdiv_bug: no
hlt_bug: no
f00f_bug: no
coma_bug: no
fpu: sim
fpu_exception: yes
nível de CPU: 11
wp: sim
sinalizadores: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc dfxx dx pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips: 4256.43
tamanho do clflush: 64
cache_alignment: 64
tamanhos de endereço: 36 bits físico, 48 bits virtual
gerenciamento de energia:

processador: 3
vendor_id: GenuineIntel
família de CPUs: 6
modelo: 37
nome do modelo: CPU Intel (R) Core (i) i3 M 330 @ 2.13GHz
passo: 2
cpu MHz: 933.000
tamanho do cache: 3072 KB
ID físico: 0
irmãos: 4
ID do núcleo: 2
núcleos da CPU: 2
apicid: 5
apicídio inicial: 5
fdiv_bug: no
hlt_bug: no
f00f_bug: no
coma_bug: no
fpu: sim
fpu_exception: yes
nível de CPU: 11
wp: sim
sinalizadores: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc dfxx dx pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips: 4256.42
tamanho do clflush: 64
cache_alignment: 64
tamanhos de endereço: 36 bits físico, 48 bits virtual
gerenciamento de energia:

Agora, ele diz que existem 4 processadores no sistema. Há também um campo dentro das informações de cada campo do processador que diz que os núcleos cou são 2.

Isso significa que existem 4 CPUs da Intel i3 no meu sistema? O que o campo do processador realmente significa aqui?

smilingbuddha
fonte

Respostas:

17

As entradas são processadores lógicos ; objetos usados ​​pelo kernel internamente, não necessariamente vinculados a dispositivos físicos. (Observe que todos eles têm o mesmo physical id.)

Em outras palavras, eles representam os quatro núcleos de uma única CPU Intel i3.

Além disso, conforme observado neste post (que não é exatamente uma duplicata, mas está intimamente relacionado), esses núcleos também são lógicos - a CPU possui dois núcleos fisicamente, mas suporta hyperthreading.

Observe que alguns processadores Intel (incluindo o i5) usam hyperthreading, um sistema em que um único processador possui (por exemplo) 2 núcleos phsical, mas fornece 4 núcleos lógicos - permitindo que o sistema operacional trate o processador como tendo mais núcleos do que realmente faz.


Se o seu sistema tiver a lscpuferramenta (parte do recente util-linux ), ele produzirá um resumo mais legível para humanos das CPUs instaladas, por exemplo:

Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
gravidade
fonte
O tamanho do endereço físico é quanto maior, melhor ou quanto menor, melhor?
Qian Chen
@ElgsQianChen: Geralmente, quanto mais tempo, melhor. Veja como o mundo passou de CPUs de 8 bits para 16 bits para 32 bits e depois para processadores de 64 bits. Essa contagem de bits é o "tamanho do endereço".
grawity
Parece que vejo uma variedade de tamanhos físicos, como 36 bits, 40 bits e 46 bits. O tamanho virtual parece ser sempre 48 bits. Então, por que existem tamanhos físicos diferentes e o que eles significam quando são mais curtos ou mais longos?
Qian Chen
9

Aqui está um script awk embutido para imprimir e extrair dados relevantes de /proc/cpuinfo:

cat /proc/cpuinfo | \
awk -v FS=':' '                                       \
  /^physical id/ { if(nb_cpu<$2)  { nb_cpu=$2 } }     \
  /^cpu cores/   { if(nb_cores<$2){ nb_cores=$2 } }   \
  /^processor/   { if(nb_units<$2){ nb_units=$2 } }   \
  /^model name/  { model=$2 }                         \
                                                      \
  END{                                                \
   nb_cpu=(nb_cpu+1);                                 \
   nb_units=(nb_units+1);                             \
                                                      \
   print "CPU model:",model;                          \
   print nb_cpu,"CPU,",nb_cores,"physical cores per CPU, total",nb_units,"logical CPU units" \
 }'

Saída para um servidor de alto desempenho:

CPU model:  Intel(R) Xeon(R) CPU           X5650  @ 2.67GHz
2 CPU,  6 physical cores per CPU, total 24 logical CPU units

Saída para um laptop Core i5:

CPU model:  Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
1 CPU,  2 physical cores per CPU, total 4 logical CPU units
Mickaël Le Baillif
fonte
0

Significa simplesmente:

  1. Você realmente tem uma CPU i3 quad-core em seu sistema.

  2. Este "CPU i3 de quatro núcleos" possui quatro núcleos lógicos.

SP Sandhu
fonte
2
Na verdade, é uma CPU i3 de núcleo duplo com quatro núcleos lógicos.
David Schwartz