lscpu
命令(推荐,最直观)lscpu
是Linux系统自带的工具,可快速获取CPU架构、核心数等详细信息,无需额外安装。
lscpu | grep '^CPU(s):'
输出示例:CPU(s): 16
(表示系统有16个逻辑核心)。lscpu | grep -E 'Core\(s\) per socket|Socket\(s\)' | awk '{print $2 * $4}'
输出示例:若Core(s) per socket: 8
、Socket(s): 2
,则结果为16
(表示有2个物理CPU,每个有8个物理核心)。Socket(s)
:物理CPU插槽数(主板上的CPU数量);Core(s) per socket
:每个物理CPU的核心数(物理核心);Thread(s) per core
:每个核心的线程数(超线程技术启用时为2,否则为1);CPU(s)
:总逻辑核心数(物理核心×线程数)。/proc/cpuinfo
文件(底层详细信息)/proc/cpuinfo
是Linux系统的虚拟文件,包含CPU的详细参数,适合需要原始数据的场景。
processor
字段的数量(每个逻辑核心对应一个processor
条目)。cat /proc/cpuinfo | grep -c '^processor'
或简化命令:grep -c 'processor' /proc/cpuinfo
physical id
(物理CPU编号)和cpu cores
(每个物理CPU的核心数)计算。# 统计物理CPU数量(unique physical id的数量) cat /proc/cpuinfo | grep 'physical id' | sort -u | wc -l # 获取每个物理CPU的核心数(所有物理CPU的核心数一致) cat /proc/cpuinfo | grep 'cpu cores' | uniq # 计算物理核心总数(物理CPU数量×每个物理CPU的核心数) echo "$(cat /proc/cpuinfo | grep 'physical id' | sort -u | wc -l) × $(cat /proc/cpuinfo | grep 'cpu cores' | uniq | awk '{print $4}')" | bc
输出示例:若物理CPU数量为2
、每个物理CPU的核心数为8
,则结果为16
。nproc
命令(快速获取逻辑核心数)nproc
是专门用于显示可用处理器核心数的命令,结果等同于lscpu
的CPU(s)
字段,适合脚本或快速查询。
nproc
输出示例:16
(表示系统有16个逻辑核心可用)。
dmidecode
命令(需root权限,详细硬件信息)dmidecode
可获取硬件详细信息,包括CPU核心数,但需要root权限(因读取硬件数据)。
sudo dmidecode -t processor | grep 'Core Count'
输出示例:Core Count: 8
(表示当前CPU有8个物理核心),若有多个物理CPU,需结合Socket Designation
字段判断总数。
lscpu
和/proc/cpuinfo
显示的是虚拟CPU配置,而非物理硬件核心数(需通过云控制台查看真实配置)。lscpu
和dmidecode
属于util-linux
和dmidecode
包,Debian系统默认已安装;若未安装,可通过sudo apt-get install util-linux dmidecode
安装。