温馨提示×

Ubuntu CPUInfo中的核心数是什么意思

小樊
41
2026-01-01 21:18:11
栏目: 智能运维

概念与含义Ubuntu/proc/cpuinfo 中,“核心数”通常指当前这台机器可用的 物理核心总数(即所有物理 CPU 上实际核心的合计)。物理核心越多,能并行处理的任务就越多;若 CPU 支持并开启 超线程/SMT,还会看到更高的 逻辑处理器(线程) 数量。一般关系为:总逻辑CPU数 = 物理CPU个数 × 每颗CPU核心数 × 每核线程数(通常为1或2)

在 cpuinfo 中的对应字段

  • physical id:物理插槽/物理 CPU 的编号(去重后数量 = 物理 CPU 个数)。
  • cpu cores:该物理 CPU 的核心数量(每个插槽的核心数)。
  • core id:每个核心的唯一标识(在同一颗物理 CPU 内唯一;不同物理 CPU 可能出现相同 core id,不能据此直接计数)。
  • processor:逻辑处理器的编号(从 0 开始;条目数 = 逻辑 CPU/线程 总数)。

如何快速查看与核对

  • 查看概要(推荐):运行 lscpu,关注字段:CPU(s)(逻辑处理器总数)、Socket(s)(物理插槽数)、Core(s) per socket(每插槽核心数)、Thread(s) per core(每核线程数)。可快速判断:物理核心数 = Socket(s) × Core(s) per socket;逻辑处理器数 = CPU(s)
  • 直接读 /proc/cpuinfo
    • 物理 CPU 个数:grep 'physical id' /proc/cpuinfo | sort -u | wc -l
    • 每颗 CPU 的核心数:grep 'cpu cores' /proc/cpuinfo | sort -u
    • 逻辑处理器/线程总数:grep 'processor' /proc/cpuinfo | wc -l
    • 物理核心总数(跨插槽合计):grep 'core id' /proc/cpuinfo | sort -u | wc -l 以上命令组合即可核对“核心数”在不同字段下的含义与一致性。

一个计算示例 若执行 lscpu 得到:CPU(s)=16Socket(s)=2Core(s) per socket=4Thread(s) per core=2,则:物理核心数 = 2 × 4 = 8;逻辑处理器数 = 16;说明每个物理核心开启了 2 线程 的超线程。这与“核心数通常指物理核心总数”的口径一致。

0