lscpu命令查看(推荐)lscpu是专门用于显示CPU架构信息的工具,输出结果清晰直观,是查看核心数的首选方式。
操作命令:
lscpu
关键信息解读:
CPU(s):逻辑核心数(即系统可识别的CPU数量,包含超线程后的线程数);Core(s) per socket:每个物理CPU的物理核心数(即CPU核心数,不包含超线程);Socket(s):物理CPU个数(即主板上安装的CPU插槽数量);Thread(s) per core:每个物理核心的超线程数(若支持超线程,此值为2,否则为1)。物理核心数计算公式:
物理核心数 = CPU(s) / (Thread(s) per core × Socket(s))
示例:若lscpu输出中CPU(s)=8、Thread(s) per core=2、Socket(s)=2,则物理核心数为8/(2×2)=2(即2个物理核心,支持超线程,共8个逻辑核心)。
/proc/cpuinfo文件查看/proc/cpuinfo是Linux系统记录CPU详细信息的虚拟文件,通过grep命令可提取核心数相关数据。
操作命令:
# 查看逻辑核心数(即CPU(s)的值)
cat /proc/cpuinfo | grep 'processor' | wc -l
# 查看每个物理CPU的物理核心数(即cpu cores的值)
cat /proc/cpuinfo | grep 'cpu cores' | uniq
# 查看物理CPU个数(即physical id的唯一值数量)
cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l
关键字段说明:
processor:逻辑处理器的ID(从0开始递增,数量等于逻辑核心数);physical id:物理CPU的ID(从0开始,数量等于物理CPU个数);core id:物理核心的ID(同一物理CPU内从0开始,数量等于每个物理CPU的物理核心数);cpu cores:每个物理CPU包含的物理核心数(固定值,所有物理CPU的此值相同)。物理核心数计算逻辑:
通过physical id的数量(物理CPU个数)乘以cpu cores的值(每个物理CPU的物理核心数),即可得到总物理核心数。
nproc命令查看nproc是GNU Coreutils工具包中的命令,用于快速获取当前系统可用的逻辑CPU数量(即lscpu中的CPU(s)值)。
操作命令:
nproc
输出示例:若系统有8个逻辑核心,执行nproc将直接输出8。
注意:nproc仅显示逻辑核心数,不区分物理核心或超线程线程。
通过上述命令获取的信息,可结合以下公式验证逻辑核心数的正确性:
逻辑核心数 = 物理CPU个数 × 每个物理CPU的物理核心数 × 每个核心的超线程数
以上方法覆盖了Linux系统下查看CPU核心数的常用场景,其中lscpu和/proc/cpuinfo提供了最详细的硬件信息,而nproc则适合快速获取逻辑核心数。