为什么在 Linux VM(如 vmware 和 XenServer)中,物理 ID > /proc/cpuinfo 中的核心数

为什么在 Linux VM(如 vmware 和 XenServer)中,物理 ID > /proc/cpuinfo 中的核心数

这仅在 Linux 虚拟机中观察到。在 /proc/cpuinfo 中,物理 ID 可能非常大,超出了 CPU 的数量。

对于下面的示例,系统有 4 个核心,但物理 ID 为 13。还有另一个虚拟机,只有 2 个核心,但一个物理 ID 是 2。

有人知道虚拟机如何定义 Linux 物理 ID 吗?

处理器:0
vendor_id:GenuineIntel
CPU 系列:6
型号:45
型号名称:Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz
步进:7
微码:1808
CPU频率:2900.040
缓存大小:20480 KB
物理 ID:13
兄弟姐妹:1
核心 ID:0
CPU 核心:1
酸度:13
初始 apicid : 13
fpu:是
fpu_exception :是
cpuid级别:13
wp :是的
标志:fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht 系统调用 nx lm constant_tsc rep_good irreparable_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt tsc_deadline_timer aes 虚拟机管理程序 lahf_lm arat epb pln pts dts
博戈米普斯:5800.08
clflush 大小:64
缓存对齐:64
地址大小:46 位物理,48 位虚拟
能源管理:

处理器:1
vendor_id:GenuineIntel
CPU 系列:6
型号:45
型号名称:Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz
步进:7
微码:1808
CPU频率:2900.040
缓存大小:20480 KB
物理 ID:13
兄弟姐妹:1
核心 ID:0
CPU 核心:1
酸度:13
初始 apicid : 13
fpu:是
fpu_exception :是
cpuid级别:13
wp :是的
标志:fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht 系统调用 nx lm constant_tsc rep_good irreparable_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt tsc_deadline_timer aes 虚拟机管理程序 lahf_lm arat epb pln pts dts
博戈米普斯:5800.08
clflush 大小:64
缓存对齐:64
地址大小:46 位物理,48 位虚拟
能源管理:

处理器:2
vendor_id:GenuineIntel
CPU 系列:6
型号:45
型号名称:Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz
步进:7
微码:1808
CPU频率:2900.040
缓存大小:20480 KB
物理 ID:13
兄弟姐妹:1
核心 ID:0
CPU 核心:1
酸度:13
初始 apicid : 13
fpu:是
fpu_exception :是
cpuid级别:13
wp :是的
标志:fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht 系统调用 nx lm constant_tsc rep_good irreparable_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt tsc_deadline_timer aes 虚拟机管理程序 lahf_lm arat epb pln pts dts
博戈米普斯:5800.08
clflush 大小:64
缓存对齐:64
地址大小:46 位物理,48 位虚拟
能源管理:

处理器:3
vendor_id:GenuineIntel
CPU 系列:6
型号:45
型号名称:Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz
步进:7
微码:1808
CPU频率:2900.040
缓存大小:20480 KB
物理 ID:13
兄弟姐妹:1
核心 ID:0
CPU 核心:1
酸度:13
初始 apicid : 13
fpu:是
fpu_exception :是
cpuid级别:13
wp :是的
标志:fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht 系统调用 nx lm constant_tsc rep_good irreparable_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt tsc_deadline_timer aes 虚拟机管理程序 lahf_lm arat epb pln pts dts
博戈米普斯:5800.08
clflush 大小:64
缓存对齐:64
地址大小:46 位物理,48 位虚拟
能源管理:

答案1

物理 ID 旨在指示信息属于哪个物理 CPU。但是,由于 /proc/cpuinfo 大部分是从 CPU 本身提取的,因此很容易造成混淆。

尤其是核心和超线程会混淆物理 ID。在大多数系统中,我遇到的物理 ID 模式是核心超线程。也就是说,核心 1 的物理 ID 为 1,核心 2 的物理 ID 为 1(超线程的数量)。

就你的情况而言,我承认我的数学并不完全支持你的观察结果中央处理器有8个核心和16个超线程。

尝试:

grep "physical id" /proc/cpuinfo

“物理 ID” 的值是什么?我们期望每个核心都会有新的“ID”,从而取得一些进展。

概括价值观可能有用或没用。

相关内容