/proc/cpuinfo

Voici une description du pseudo fichier /proc/cpuinfo.

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 28
model name	: Intel(R) Atom(TM) CPU D425   @ 1.80GHz
stepping	: 10
cpu MHz		: 1800.115
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: 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 syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm dts
bogomips	: 3600.23
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 28
model name	: Intel(R) Atom(TM) CPU D425   @ 1.80GHz
stepping	: 10
cpu MHz		: 1800.115
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: 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 syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm dts
bogomips	: 3600.23
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

Et c'est là que l'interprétation n'est pas des plus facile. Je ne présenterai pas les directive qui indique les modèles ....
processor : c'est l'id du processeur logique vu dans le système (commande top puis 1 pour afficher par CPU), ici 0 et 1 donc 2 CPUs logique.
physical id : id du processeur physique, ici 0 et 0 donc 1 CPU physique.
cpu cores : nombre de coeur, ici 1 et 1 donc 2 CPUs logique possédant chacun 1 core.
siblings : s'il est égale au cpu cores, l'hyperthreading est désactiver, ici le siblings fait 2x le nombre de cpu cores donc l'hyperthreading est actif.
Donc en résumé on a 1 CPU physique a 1 coeur avec l'hyperthreading donc au final 2 CPUs logiques.

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:    2
Core(s) per socket:    1
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 28
Stepping:              10
CPU MHz:               1800.115
BogoMIPS:              3600.23
L1d cache:             24K
L1i cache:             32K
L2 cache:              512K
NUMA node0 CPU(s):     0,1

On voit que l'on a 1 CPU physique (socket) ayant 1 coeur avec 2 threads (hyperthreading) ainsi que les tailles des différents cache.
lscpu parse /sys/devices/system/cpu/cpuX
lscpu -p : sortie qui peut être parsée par un programme.

x86info

x86info v1.25.  Dave Jones 2001-2009
Feedback to <davej@redhat.com>.

Found 2 CPUs
--------------------------------------------------------------------------
CPU #1
EFamily: 0 EModel: 1 Family: 6 Model: 28 Stepping: 10
CPU Model: Unknown model. 
Processor name string: Intel(R) Atom(TM) CPU D425   @ 1.80GHz
Type: 0 (Original OEM)	Brand: 0 (Unsupported)
Number of cores per physical package=1
Number of logical processors per socket=2
Number of logical processors per core=2
APIC ID: 0x0	Package: 0  Core: 0   SMT ID 0
--------------------------------------------------------------------------
CPU #2
EFamily: 0 EModel: 1 Family: 6 Model: 28 Stepping: 10
CPU Model: Unknown model. 
Processor name string: Intel(R) Atom(TM) CPU D425   @ 1.80GHz
Type: 0 (Original OEM)	Brand: 0 (Unsupported)
Number of cores per physical package=1
Number of logical processors per socket=2
Number of logical processors per core=2
APIC ID: 0x1	Package: 0  Core: 0   SMT ID 1
--------------------------------------------------------------------------

Personnellement je le trouve trompeur entre le nombre de CPU, socket et core !!

getconf

getconf -a
affiche les variables system (faire un grep LEVEL, PAGESIZE, PROCESSOR, CACHE …)

lstopo

Machine (1989MB)
  Socket L#0 + L2 L#0 (512KB) + L1d L#0 (24KB) + L1i L#0 (32KB) + Core L#0
    PU L#0 (P#0)
    PU L#1 (P#1)
  HostBridge L#0
    PCI 8086:a001
      GPU L#0 "controlD64"
      GPU L#1 "card0"
    PCIBridge
      PCI 10ec:8136
        Net L#2 "eth0"
    PCI 8086:27c0
      Block L#3 "sda"

La même chose mais la sortie en image qui pour moi est la plus parlante :

lstopo /var/www/html/cpu.png

nproc

Sans chichi, il donne le nombre de CPU total peut importe le physique/logique.

2