在Linux系统中查询CPU核心数及详细信息的多种方法如下:
1. 使用`lscpu`命令
`lscpu`是查看CPU架构信息的标准工具:
bash
lscpu
输出中的以下字段关键:
CPU(s):逻辑核心总数(含超线程)。
Core(s) per socket:每物理CPU的核心数。
Socket(s):物理CPU插槽数。
实际物理核心数 = `Socket(s) × Core(s) per socket`。
2. 通过`/proc/cpuinfo`解析
bash
cat /proc/cpuinfo | grep "processor" | wc -l
此命令统计逻辑核心数。若需物理核心数,需结合`physical id`和`core id`去重计算:
bash
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l # 物理CPU数
cat /proc/cpuinfo | grep "core id" | sort | uniq | wc -l # 每CPU核心数
3. `nproc`命令快速获取逻辑核心数
bash
nproc --all
适用于脚本中快速调用。
4. `top`或`htop`动态查看
运行`top`后按`1`可显示所有CPU核心的实时负载;`htop`则以更直观的图形化展示。
5. 使用`dmidecode`(需root权限)
bash
sudo dmidecode -t processor
可获取CPU型号、核心数等硬件级信息,但输出较冗长。
6. 其他工具扩展
`numactl`:查看NUMA架构下的CPU拓扑:
bash
numactl --hardware
`lstopo`(需安装`hwloc`包):生成CPU拓扑图形化报告。
核心数相关概念
物理核心:CPU实际的独立处理单元。
逻辑核心:通过超线程(Hyper-Threading)虚拟化的核心,系统视其为独立单元。
多路CPU:服务器常见多物理CPU(多插槽),需结合`Socket(s)`和`Core(s)`计算总核心数。
选择方法时:
快速查询逻辑核心用`nproc`或`lscpu`。
分析物理拓扑用`lscpu`或`/proc/cpuinfo`。
调试性能时建议结合`top`和NUMA工具。