温馨提示×

CPUInfo里的Linux核心数代表什么

小樊
40
2025-12-22 22:43:34
栏目: 智能运维

Linux核心数的含义与查看方法

概念与含义

  • 在 linux 的 /proc/cpuinfo 中,所谓“核心数”通常指字段 cpu cores,表示单个物理 CPU 封装内的物理核心数量(例如 4 核、8 核)。与之相关:
    • physical id:物理插槽/封装编号,用于区分不同的物理 CPU。
    • core id:同一物理封装内每个物理核心的唯一编号。
    • processor:操作系统可见的逻辑处理器编号,数值上等于系统的逻辑 CPU 数(= 物理 CPU 数 × 每颗物理 CPU 的 cpu cores × 超线程因子)。
    • siblings:同一物理封装内的逻辑处理器数量,用于辅助判断是否开启超线程。以上字段共同描述了“物理 CPU—物理核心—逻辑处理器”的层级关系。

如何判断你看到的是哪种“核心数”

  • 若你看到的是“cpu cores”这一项,它指的是每颗物理 CPU 的物理核心数
  • 若你看到的是“processor”的总条数(或用命令统计 processor 数量),那是逻辑 CPU 数,并非物理核心数。
  • 快速自检是否存在超线程:比较同一物理封装内的 siblingscpu cores。若 siblings ≈ 2 × cpu cores,通常表示启用超线程;若 siblings == cpu cores,通常表示未启用超线程

常用命令与判读示例

  • 查看物理 CPU 个数:cat /proc/cpuinfo | grep “physical id” | sort -u | wc -l
  • 查看每颗物理 CPU 的物理核心数:cat /proc/cpuinfo | grep “cpu cores” | sort -u
  • 查看逻辑 CPU 总数:cat /proc/cpuinfo | grep “processor” | wc -l
  • 辅助判断超线程:在同一物理封装内对比 siblingscpu cores 的大小关系。示例:若输出显示 physical id 为 0 的只有一个cpu cores=8siblings=16processor 共 16 个,则代表1 颗物理 CPU、8 核、开启超线程,逻辑 CPU 为 16

与线程数、并行度的关系

  • 常见关系:总逻辑 CPU 数 = 物理 CPU 个数 × 每颗物理 CPU 的 cpu cores × 超线程因子。超线程因子通常为 1(未启用)或 2(启用)
  • 并行度提示:线程/进程能同时并行的上限通常不超过逻辑 CPU 数;但受工作负载类型、内存带宽、I/O等因素影响,实际加速比往往低于逻辑 CPU 数。

0