cpu、物理核数、逻辑核数、超线程

CPU核心概念总结

以下为核心术语的定义、关系及在 CentOS 中的查看方法:

一、核心概念解析
术语 定义 关键特性
CPU 中央处理器(Central Processing Unit),计算机的运算核心 物理封装在主板上的芯片(如 Intel i9、AMD Ryzen)。
物理核数 CPU 芯片中独立存在的物理计算单元数量 每个物理核独占计算资源(ALU、寄存器); 多核实现真正并行计算
逻辑核数 通过超线程(Hyper-Threading)技术将一个物理核模拟出的多个虚拟计算单元 由操作系统识别为独立核;逻辑核共享物理核资源,性能 < 物理核 × 数量。
超线程技术 Intel 的硬件技术(AMD 为 SMT),让单物理核在同一时间片处理多线程指令 启用后:物理核数 × 2 = 逻辑核数;提升吞吐量但降低单核性能(适合 I/O 密集型任务)。

此处线程和我们常说的进程中的线程有所区别,具体区别可以见《超线程与应用线程的区别》。

⚙️ 二、四者关系
操作系统视角
物理结构
逻辑核1
逻辑核2
逻辑核3
逻辑核4
物理核1
物理核2
CPU芯片
超线程技术
  • 计算公式
    • 启用超线程逻辑核数 = 物理核数 × 2
    • 禁用超线程逻辑核数 = 物理核数
  • 性能本质
    • 1 个物理核的算力 > 1 个逻辑核(如开启超线程时,2 个逻辑核共享 1 个物理核算力)
三、在 CentOS 中查看命令
1. 查看 CPU 型号与物理架构
lscpu

关键输出解析

Architecture:          x86_64
CPU(s):                8           # 总逻辑核数
Thread(s) per core:    2           # 每个物理核的逻辑线程数(超线程启用时为2)
Core(s) per socket:    4           # 每颗CPU的物理核数
Socket(s):             1           # 物理CPU颗数(即CPU插槽数)
2. 查看物理核数
grep "cpu cores" /proc/cpuinfo | uniq
# 输出示例:cpu cores : 4
3. 查看逻辑核数
nproc  # 或 grep -c "processor" /proc/cpuinfo
# 输出示例:8
4. 确认超线程状态
# 若 Thread(s) per core = 2 → 超线程启用
lscpu | grep "Thread(s) per core"
# 输出示例:Thread(s) per core: 2
5. 检测物理核与逻辑核的绑定关系
# 查看每个逻辑核对应的物理核编号(相同physical id属于同一物理核)
cat /proc/cpuinfo | grep -e "processor" -e "physical id" -e "core id"

输出示例

processor: 0
physical id: 0  # 物理CPU编号
core id: 0      # 物理核编号
processor: 1
physical id: 0
core id: 0      # 与processor0同属一个物理核(超线程)

你可能感兴趣的:(操作系统,Linux,操作系统,计算机组成原理,linux)