在 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 协议》,转载必须注明作者和本文链接
其实就grep就行了
一点优化建议
cat file | grep patern
可以直接用grep patern file
,UUoCuniq -c
、grep -c
可以计数,不一定要接wc -l
再来点带有强迫症的, 查看cpu频率