Linux - Infos CPU
Alasta 11 Septembre 2014 linux bash Hardware Linux Open Source Profiling shell
Description : Informations des CPUs via divers commandes.
/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