Linux: /proc/cpuinfo 에서 Dual(Quad) Core와 Hyper Theading 구분하기

|

/proc/cpuinfo를 보면 아래와 같다.

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Xeon(R) CPU           E5335  @ 2.00GHz
stepping        : 11
cpu MHz         : 2000.074
cache size      : 4096 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
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 syscall lm constant_tsc pni monitor ds_cpl vmx tm2 cx16 xtpr lahf_lm
bogomips        : 4003.11
clflush size    : 64
cache_alignment : 64
address sizes   : 38 bits physical, 48 bits virtual
power management:

여기에서 physical id 항목과 core id 항목이 중요한데, physical id 항목은 물리적인 CPU로 구분하여 넘버링되고, core id 항목은 논리적인 CPU 코어로 구분하여 넘버링 된다.
즉 Dual Core나 Hyperthreading 된 가상 CPU나 physical id는 동일하고, core id의 경우는 Dual Core의 경우에는 다르게 넘버링되고 Hyperthreading 된 가상 CPU는 서로 똑같이 넘버링된다.

그 밖에 siblings는 해당 physical CPU당 몇개의 논리 CPU가 존재하는지의 갯수를 의미한다.

And