在 Linux 系统中,可以通过以下几种方法查看 CPU 的核心数(cores)和线程数(threads):
lscpu
命令lscpu
输出示例:
Architecture: x86_64
CPU(s): 8 # 总逻辑CPU数(线程数)
Thread(s) per core: 2 # 每个核心的线程数
Core(s) per socket: 4 # 每个物理CPU的核心数
Socket(s): 1 # 物理CPU数量
计算方式:
- 物理核心数 = Core(s) per socket × Socket(s)
= 4 × 1 = 4 核
- 逻辑CPU数(线程数) = CPU(s)
= 8 线程
- 每个核心的线程数 = Thread(s) per core
= 2(超线程启用时为2,否则为1)
nproc
命令查看当前系统的逻辑CPU数(线程数):
nproc --all # 输出总逻辑CPU数(线程数)
/proc/cpuinfo
cat /proc/cpuinfo
关键字段:
- processor
:逻辑CPU的编号(从0开始,最大值 = 线程数 - 1)。
- core id
:物理核心的编号(相同 core id
表示是同一核心的超线程)。
- cpu cores
:每个物理CPU的核心数(需结合 siblings
判断超线程)。
统计核心和线程数:
# 物理核心数
cat /proc/cpuinfo | grep "core id" | sort -u | wc -l
# 逻辑CPU数(线程数)
cat /proc/cpuinfo | grep "processor" | wc -l
htop
或 top
安装并运行 htop
(需先安装):
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # CentOS/RHEL
htop
在界面顶部会显示 CPU 使用情况,逻辑CPU的数量即为线程数。
dmidecode
(查看物理CPU信息)sudo dmidecode -t processor
输出会包含物理CPU的详细信息(如型号、核心数等)。
指标 | 命令 | 示例值 |
---|---|---|
逻辑CPU数(线程) | nproc --all 或 lscpu \| grep "CPU(s)" |
8 |
物理核心数 | lscpu \| grep "Core(s) per socket" |
4 |
是否启用超线程 | lscpu \| grep "Thread(s) per core" |
2(是) |
Thread(s) per core > 1
,则超线程已启用。逻辑CPU数 > 物理核心数
,则超线程已启用。通过以上方法,你可以快速确认 Linux 系统的 CPU 核心和线程配置。