我对使用 dmidecode 获取的以下信息感到有些惊讶:
srs@ubuntu:~$ sudo dmidecode -t processor
# dmidecode 2.9
SMBIOS 2.6 present.
Handle 0x0004, DMI type 4, 42 bytes
Processor Information
Socket Designation: LGA1155
Type: Central Processor
Family: <OUT OF SPEC>
Manufacturer: Intel
ID: A7 06 02 00 FF FB EB BF
Version: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
Voltage: 1.0 V
External Clock: 100 MHz
Max Speed: 3800 MHz
Current Speed: 3300 MHz
Status: Populated, Enabled
Upgrade: Other
L1 Cache Handle: 0x0005
L2 Cache Handle: 0x0006
L3 Cache Handle: 0x0007
Serial Number: To Be Filled By O.E.M.
Asset Tag: To Be Filled By O.E.M.
Part Number: To Be Filled By O.E.M.
Core Count: 4
Core Enabled: 1
Characteristics:
64-bit capable
然而从gnome 系统监视器我可以看到 4 个 CPU 同时工作。
答案1
SMBIOS 规范的第 7.5.7 节 (http://dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf) 指出:
“已启用核心数”是指 BIOS 启用并可供操作系统使用的核心数。例如,如果 BIOS 检测到双核处理器,则如果启用两个核心,则报告值为 2;如果禁用多核支持,则报告值为 1。”
如果您在线看到 4 个 CPU,那么我个人怀疑这可能只是 SMBIOS 表中的一个错误。
答案2
1.- 根据http://software.intel.com/en-us/articles/intel-hyper-threading-technology-your-questions-answered/ 如何知道我的系统是否正在使用超线程技术?看来英特尔® 超线程技术实际上复制了可用的 CPU
2.-瘦身命令只说有 4 个物理 ID,物理 ID:4
3.-/pro/cpuinfo
srs@ubuntu:~$ cat /proc/cpuinfo | grep -e processor -e "model name" -e "cache size" -e "physical id" -e "siblings" -e "core id" -e "cpu cores"
processor : 0
model name : Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
processor : 1
model name : Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 4
processor : 2
model name : Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 4
processor : 3
model name : Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 3
cpu cores : 4
4.-理解 Linux /proc/cpuinfo:单插槽四核(示例 3):
请注意,每个处理器都有自己的核心 ID。同级处理器的数量与核心数量相匹配,因此不存在超线程同级处理器。还请注意巨大的二级缓存 - 6 MB。不过,考虑到 4 个核心共享该二级缓存,这是有道理的。
因此,也许 dmidecode 正在尝试告知每个核心的硬件线程数。就我的处理器而言,不支持超线程技术,每个核心只有一个硬件线程。