Interprétation de la sortie de cat / proc / cpuinfo

22

Comment interpréter les informations imprimées par la commande suivante sous Linux

cat /proc/cpuinfo

Sur mon ordinateur portable, j'obtiens la sortie suivante:

[gaurish108: ~] $ cat / proc / cpuinfo (02-09 15:34)
processeur: 0
vendor_id: GenuineIntel
famille de processeurs: 6
modèle: 37
nom du modèle: CPU Intel (R) Core (TM) i3 M 330 à 2,13 GHz
pas à pas: 2
processeur MHz: 933 000
taille du cache: 3072 Ko
identifiant physique: 0
frères et sœurs: 4
id de base: 0
cœurs de processeur: 2
apicid: 0
apicid initial: 0
fdiv_bug: non
hlt_bug: non
f00f_bug: non
coma_bug: non
fpu: oui
fpu_exception: oui
niveau cpuid: 11
wp: oui
drapeaux: 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 nonstopstf stfts pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips: 4256.49
clflush taille: 64
cache_alignment: 64
tailles d'adresses: 36 bits physiques, 48 ​​bits virtuels
gestion de l'alimentation:

processeur: 1
vendor_id: GenuineIntel
famille de processeurs: 6
modèle: 37
nom du modèle: CPU Intel (R) Core (TM) i3 M 330 à 2,13 GHz
pas à pas: 2
processeur MHz: 933 000
taille du cache: 3072 Ko
identifiant physique: 0
frères et sœurs: 4
id de base: 0
cœurs de processeur: 2
apicid: 1
apicide initial: 1
fdiv_bug: non
hlt_bug: non
f00f_bug: non
coma_bug: non
fpu: oui
fpu_exception: oui
niveau cpuid: 11
wp: oui
drapeaux: 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 nonstopstf stfts pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips: 4256.40
clflush taille: 64
cache_alignment: 64
tailles d'adresses: 36 bits physiques, 48 ​​bits virtuels
gestion de l'alimentation:

processeur: 2
vendor_id: GenuineIntel
famille de processeurs: 6
modèle: 37
nom du modèle: CPU Intel (R) Core (TM) i3 M 330 à 2,13 GHz
pas à pas: 2
processeur MHz: 933 000
taille du cache: 3072 Ko
identifiant physique: 0
frères et sœurs: 4
id de base: 2
cœurs de processeur: 2
apicide: 4
apicide initial: 4
fdiv_bug: non
hlt_bug: non
f00f_bug: non
coma_bug: non
fpu: oui
fpu_exception: oui
niveau cpuid: 11
wp: oui
drapeaux: 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 nonstopstf stfts pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips: 4256.43
clflush taille: 64
cache_alignment: 64
tailles d'adresses: 36 bits physiques, 48 ​​bits virtuels
gestion de l'alimentation:

processeur: 3
vendor_id: GenuineIntel
famille de processeurs: 6
modèle: 37
nom du modèle: CPU Intel (R) Core (TM) i3 M 330 à 2,13 GHz
pas à pas: 2
processeur MHz: 933 000
taille du cache: 3072 Ko
identifiant physique: 0
frères et sœurs: 4
id de base: 2
cœurs de processeur: 2
apicid: 5
apicide initial: 5
fdiv_bug: non
hlt_bug: non
f00f_bug: non
coma_bug: non
fpu: oui
fpu_exception: oui
niveau cpuid: 11
wp: oui
drapeaux: 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 nonstopstf stfts pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips: 4256.42
clflush taille: 64
cache_alignment: 64
tailles d'adresses: 36 bits physiques, 48 ​​bits virtuels
gestion de l'alimentation:

Maintenant, il indique qu'il y a 4 processeurs sur le système. Il y a aussi un champ à l'intérieur des informations de chaque champ de processeur qui indique que les coeurs cou sont 2.

Est-ce à dire qu'il y a 4 processeurs Intel i3 sur mon système? Que signifie vraiment le domaine du processeur ici?

Bouddha souriant
la source

Réponses:

17

Les entrées sont des processeurs logiques ; les objets utilisés par le noyau en interne, pas nécessairement liés aux périphériques physiques. (Notez qu'ils ont tous la même chose physical id.)

En d'autres termes, ils représentent les quatre cœurs d'un seul processeur Intel i3.

En outre, comme indiqué sur ce post (qui n'est pas exactement un doublon mais étroitement lié), ces cœurs sont également logiques - le processeur a deux cœurs physiquement mais prend en charge l'hyperthreading.

Notez que certains processeurs Intel (y compris l'i5) utilisent l'hyperthreading, un système où un seul processeur possède (par exemple) 2 cœurs pyhsiques, mais fournira 4 cœurs logiques - permettant au système d'exploitation de traiter le processeur comme ayant plus de cœurs qu'il n'en a réellement Est-ce que.


Si votre système dispose de l' lscpuoutil (qui fait partie des util-linux récents ), il produirait un résumé plus lisible par l'homme des CPU installés, par exemple:

Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
grawity
la source
La taille de l'adresse physique est-elle la plus longue est la meilleure, ou la plus courte est la meilleure?
Qian Chen
@ElgsQianChen: Habituellement, plus c'est long, mieux c'est. Découvrez comment le monde est passé des processeurs 8 bits aux processeurs 16 bits à 32 bits, puis aux processeurs 64 bits. Ce nombre de bits est la "taille d'adresse".
grawity
On dirait que je vois une variété de tailles physiques, comme 36 bits, 40 bits et 46 bits. La taille virtuelle semble toujours être de 48 bits. Alors pourquoi il existe différentes tailles physiques, et que signifient-elles quand elles sont plus courtes ou plus longues?
Qian Chen
9

Voici un script awk en ligne pour imprimer et extraire les données pertinentes 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" \
 }'

Sortie pour un serveur hautes performances:

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

Sortie pour un ordinateur portable 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
la source
0

Cela signifie simplement:

  1. Vous avez en fait un processeur i3 quadricœur sur votre système.

  2. Ce «processeur i3 quadricœur» comprend quatre cœurs logiques.

SP Sandhu
la source
2
En fait, c'est un processeur i3 double cœur avec quatre cœurs logiques.
David Schwartz