/proc/cpuinfo
Inhaltsverzeichnis
Die Datei /proc/cpuinfo enthält Details zu den im Server verbauten Prozessoren.
Beispiel
# cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 16 model : 4 model name : AMD Phenom(tm) II X4 B95 Processor stepping : 2 cpu MHz : 800.000 cache size : 512 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 4 apicid : 0 fpu : yes fpu_exception : yes cpuid level : 5 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc nonstop_tsc pni cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy altmovcr8 abm sse4a misalignsse 3dnowprefetch osvw bogomips : 5984.99 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm stc 100mhzsteps hwpstate [8] processor : 1 vendor_id : AuthenticAMD cpu family : 16 model : 4 model name : AMD Phenom(tm) II X4 B95 Processor stepping : 2 cpu MHz : 800.000 cache size : 512 KB physical id : 0 siblings : 4 core id : 1 cpu cores : 4 apicid : 1 fpu : yes fpu_exception : yes cpuid level : 5 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc nonstop_tsc pni cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy altmovcr8 abm sse4a misalignsse 3dnowprefetch osvw bogomips : 5984.96 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm stc 100mhzsteps hwpstate [8] [...]
Aufbau
Die Informationen sind pro logischem Prozessor gruppiert. Die einzelnen Gruppen sind wie folgt aufgebaut:
- processor
- ID des Logischer Prozessor, fortlaufend nummeriert, bei Null startend
- vendor_id
- Hersteller des Prozessors
- erster Teil der CPUID-Kennung - ein maximal zwölf Zeichen langer Name des Herstellers
- cpu family
- Numerischer Wert, der Modellvariante spezifiziert
- zweiter Teil der CPUID-Kennung
- model name
- Modellbezeichnung des Prozessors
- stepping
- Stepping bzw. Core Revisions
- cpu MHz
- Taktfrequenz in MHz
- physical id
- Anzahl der physischen Prozessoren sprich Anzahl der Sockel
- siblings
- Anzahl der parallel arbeitenden Einheiten
- Ohne Hyperthreading: Siblings = Anzahl der Cores pro CPU
- Mit Hyperthreading: Siblings = 2 * Anzahl der Cores pro CPU
- core id
- cpu cores
- Anzahl der Cores pro CPU
- Hyperthreading wird hierbei nicht mitgezählt
Tools
Es gibt mehrere Tools, um die CPU-Informationen zusammengefaßt anzuzeigen:
lscpu
# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 16 On-line CPU(s) list: 0-15 Thread(s) per core: 2 Core(s) per socket: 8 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 63 Model name: Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz Stepping: 2 CPU MHz: 1200.000 BogoMIPS: 6392.68 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 20480K NUMA node0 CPU(s): 0-15
cpu.sh
Dieses Skript ist Teil von "How to find the number of physical cpus, cpu cores, and logical cpus"
# ./cpu.sh 16 logical processors (8 CPU cores) 1 Intel Xeon CPU E5-2667 v3 @ 3.20GHz (flags: aes,constant_tsc,ht,lm,pae,vmx) └─16 threads / 8 cores each
/proc/cpuinfo + awk
# 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" \ }' CPU model: Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz 1 CPU, 8 physical cores per CPU, total 16 logical CPU units
Quelle: http://superuser.com/questions/388115/interpreting-output-of-cat-proc-cpuinfo
grep + sort + wc
Die Gruppierung der Details in /proc/cpuinfo erschwert es eine schnelle Übersicht zu erstellen.
Anzahl der physischen Prozessoren / Sockel
# grep physical.id /proc/cpuinfo | sort -u | wc -l 1
Anzahl der logischen Prozessoren
# grep processor /proc/cpuinfo | wc -l 16
Anzahl der Cores pro CPU (ohne Hyperthreading)
# grep cpu.cores /proc/cpuinfo | sort -u cpu cores : 8
Anzahl der Cores pro CPU (mit Hyperthreading)
# grep siblings /proc/cpuinfo | sort -u siblings : 16
Weiterführende Informationen
- How to find the number of physical cpus, cpu cores, and logical cpus
- x86 architecture CPUID
- What do the flags in /proc/cpuinfo mean?
http://unix.stackexchange.com/questions/43539/what-do-the-flags-in-proc-cpuinfo-mean