在 Linux 中查询 CPU 的核数

以一台Linux服务器为例。这台Linux包括两颗Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz CPU, 单颗CPU包括 10 个 cpu core, 使用超线程包含20个逻辑cpu core, 具体的官方介绍: E5-2630 V4

下面让我们通过Linux的命令来查找对应的参数,看看是否符合官方的介绍, 主要是查看/proc/cpuinfo的信息获得。

查看 CPU 的型号

 cat /proc/cpuinfo | grep 'model name' | sort | uniq
输出: model name  : Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz

查看 CPU 颗数

实际Server中插槽上的CPU个数, 物理cpu数量,可以数不重复的 physical id个数。

cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l
输出: 2

查看 CPU 核数

一颗CPU上面能处理数据的芯片组的数量。

cat /proc/cpuinfo |grep "cores"|uniq|awk '{print $4}'
输出: 10

逻辑 CPU 核数

一般情况,我们认为一颗 cpu 可以有多核,加上intel的超线程技术(HT), 可以在逻辑上把一个物理线程模拟出两个线程来使用,使得单个核心用起来像两个核一样,以充分发挥 CPU 的性能,

逻辑CPU数量=物理cpu数量 x cpu cores 这个规格值x 2(如果支持并开启超线程)。

top命令查询出来的就是逻辑CPU的数量。

cat /proc/cpuinfo |grep "processor"|wc -l
输出:40
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 3
Oraoto

一点优化建议

  1. cat file | grep patern 可以直接用 grep patern fileUUoC
  2. uniq -cgrep -c可以计数,不一定要接wc -l
4年前 评论

再来点带有强迫症的, 查看cpu频率

watch -n 1 grep \"cpu MHz\" /proc/cpuinfo
4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!