cat /proc/cpuinfo
を実行すると、次の出力が表示されます(関連する行のみが含まれます)。
cpu cores: 1
ただし、lscpu
は次の出力を提供します。
CPU(s): 2
どちらが正しいか、さらに重要なことは、なぜ異なる結果が得られるのですか?
cat /proc/cpuinfo
の完全な出力は次のとおりです。
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 3
model name : Intel(R) Pentium(R) 4 CPU 2.80GHz
stepping : 4
microcode : 0xe
cpu MHz : 2800.135
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fdiv_bug : no
f00f_bug : no
coma_bug : no
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 dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc pebs bts pni dtes64 monitor ds_cpl cid xtpr
bogomips : 5600.27
clflush size : 64
cache_alignment : 128
address sizes : 36 bits physical, 32 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 3
model name : Intel(R) Pentium(R) 4 CPU 2.80GHz
stepping : 4
microcode : 0xe
cpu MHz : 2800.135
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fdiv_bug : no
f00f_bug : no
coma_bug : no
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 dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc pebs bts pni dtes64 monitor ds_cpl cid xtpr
bogomips : 5600.27
clflush size : 64
cache_alignment : 128
address sizes : 36 bits physical, 32 bits virtual
power management:
lscpu
の完全な出力は次のとおりです。
Architecture: i686
CPU op-mode(s): 32-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
Vendor ID: GenuineIntel
CPU family: 15
Model: 3
Stepping: 4
CPU MHz: 2800.135
BogoMIPS: 5600.27
L1d cache: 16K
L2 cache: 1024K
(これは https://Gist.github.com/IQAndreas/f3f9139b8968987d3716 でも表示できます。)
これは、 ハイパースレッディング を介して2つの実行スレッドを含む単一のコアを含む単一のプロセッサを持つことに一貫しています。したがって、2つの論理プロセッサがありますが、それらのリソース(命令デコード、算術など)のほとんどを共有します。これにより、一部の並列処理が可能になります。ハードウェアコストを抑えながら(2つの独立したコアよりも少ないコンポーネント)、一方のスレッドをブロックしながら(メモリアクセスを待機するなど)スレッドを進めることができます。
lscpu
からの残りの出力と/proc/cpuinfo
のコンテンツを見てください。 つまり、物理CPUコアではなく論理CPUコアとは何ですか? を参照してください。