proc/cpuinfo 确定系统的 CPU 情况
一些操作系统的最新版本已经更新了 /proc/cpuinfo 文件,以支持多路平台。如果您的系统中的 /proc/cpuinfo 文件能够正确地反映出处理器信息,那么就不需要执行上述步骤。反之,可采用本文中的信息进行解释。
/proc/cpuinfo 文件包含系统上每个处理器的数据段落。 /proc/cpuinfo 描述中有 6 个条目适用于多内核和超线程( HT )技术检查: processor , vendor id , physical id , siblings , core id 和 cpu cores 。
- processor 条目包括这一逻辑处理器的唯一标识符。
- physical id 条目包括每个物理封装的唯一标识符。
- core id 条目保存每个内核的唯一标识符。
- siblings 条目列出了位于相同物理封装中的逻辑处理器的数量。
- cpu cores 条目包含位于相同物理封装中的内核数量。
- 如果处理器为英特尔处理器,则 vendor id 条目中的字符串是 GenuineIntel 。
拥有相同 physical id 的所有逻辑处理器共享同一个物理插座。每个 physical id 代表一个唯一的物理封装。 Siblings 表示位于这一物理封装上的逻辑处理器的数量。它们可能支持也可能不支持超线程( HT )技术。每个 core id 均代表一个唯一的处理器内核。所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上。如果有一个以上逻辑处理器拥有相同的 core id 和 physical id ,则说明系统支持超线程( HT )技术。如果有两个或两个以上的逻辑处理器拥有相同的 physical id ,但是 core id 不同,则说明这是一个多内核处理器。 cpu cores 条目也可以表示是否支持多内核。
例如,如果系统包含两个物理封装,每个封装中又包含两个支持超线程( HT )技术的处理器内核,则 /proc/cpuinfo 文件将包含此数据。(注:数据并不在表格中。)
processor | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
physical id | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
core id | 0 | 2 | 1 | 3 | 0 | 2 | 1 | 3 |
siblings | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 |
cpu cores | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
此例说明逻辑处理器 0 和 4 驻留在物理封装 0 的内核 0 上。这就表示逻辑处理器 0 和 4 支持超线程( HT )技术。相同的工作可用于封装 0 内核 1 上的逻辑处理器 2 和 6 ,封装 1 内核 2 上的逻辑处理器 1 和 5 ,以及封装 1 内核 3 上的逻辑处理器 3 和 7 。此系统支持超线程( HT )技术,因为两个逻辑处理器共享同一个内核。有两种方式可以确定是否支持多内核。由于内核 0 和 1 存在于封装 0 上,而内核 2 和 3 存在于封装 1 上,所以这是一个多内核系统。此外, cpu cores 条目为 2 ,也说明有两个内核驻留在物理封装中。这是一个多路系统,因为有两个封装。
值得注意的是 physical id 和 core id 的编号可能是也可能不是连续的。系统上有两个物理封装并不罕见,而且 physical id 等于 0 和 3