Linux/UNIX 下的哲学核心思想是 ’ 一切皆文件 ’。硬件信息也记录在了文件中。
通过 cat /proc/cpuinfo 来查看 CPU 相关详细信息。
- vendor id 如果处理器为英特尔处理器,则字符串是 GenuineIntel。
- processor 包括这一逻辑处理器的唯一标识符。
- physical id 包括每个物理封装的唯一标识符。
- core id 保存每个内核的唯一标识符。
- siblings 列出了位于相同物理封装中的逻辑处理器的数量。
- cpu cores 包含位于相同物理封装中的内核数量。
- 拥有相同 physical id 的所有逻辑处理器共享同一个物理插座,每个 physical id 代表一个唯一的物理封装。
- Siblings 表示位于这一物理封装上的逻辑处理器的数量,它们可能支持也可能不支持超线程(HT)技术。
- 每个 core id 均代表一个唯一的处理器内核,所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上。简单的说:“siblings”指的是一个物理 CPU 有几个逻辑 CPU,”cpu cores“指的是一个物理 CPU 有几个核。
- 如果有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术。
- 如果有两个或两个以上的逻辑处理器拥有相同的 physical id,但是 core id 不同,则说明这是一个多内核处理器。cpu cores 条目也可以表示是否支持多内核。
根据上述规则,可以计算得到:
物理 CPU
实际物理机中插槽上的 CPU 个数。
即物理 CPU 数量,可以数不重复的 physical id 有几个,查看方法
grep "physical id" /proc/cpuinfo | sort | uniq | wc -l
CPU 核数
单块 CPU
上面能处理数据的芯片组的数量即 CPU 核数,如双核、四核等(cpu cores)。
。一般来说,物理 CPU 个数×每颗核数就应该等于 逻辑 CPU
的个数;如果不相等的话,则表示服务器的 CPU 支持超线程技术
cat /proc/cpuinfo | grep "cpu cores" | uniq
grep "cpu cores" /proc/cpuinfo | uniq | awk -F ":" "{print $2}"
逻辑 CPU
Linux 用户对 /proc/cpuinfo 这个文件肯定不陌生。它是用来存储 CPU 硬件信息的
信息内容分别列出了processor 0 – n
的规格。这里需要注意,如果你认为 n 就是真实的 CPU 数的话, 就大错特错了。
一般情况,我们认为 一颗 CPU 可以有多核
,加上intel 的超线程技术(Hyper-Threading)
, 可以在逻辑上再分一倍数量的 cpu core 出来 逻辑 CPU 数量 = 物理 CPU 数量 x cpu cores 这个规格值 x 2(如果支持并开启 ht)
。
如果有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术
备注一下:Linux 下 top 查看的 CPU 也是 逻辑 CPU
个数。
cat /proc/cpuinfo | grep "processor" | wc -l