温馨提示×

Ubuntu CPUInfo中的关键数据解读

小樊
41
2026-01-05 18:43:40
栏目: 智能运维

Ubuntu CPUInfo 关键数据解读

一、快速查看与定位

  • 使用 lscpu 获取架构与拓扑的概要信息(推荐首选)。
  • 使用 cat /proc/cpuinfo 查看每个逻辑处理器的详细字段(适合逐项排查)。
  • 使用 uname -m 确认操作系统/CPU 架构(如 x86_64 表示 64 位)。
  • 使用 top/htop 实时监控 CPU 使用率;需要更细粒度可用 mpstat -P ALL 1(需安装 sysstat)。

二、lscpu 关键字段与含义

字段 含义 如何计算或判断
Architecture CPU 架构(如 x86_64、aarch64 与软件兼容、编译目标相关
CPU op-mode(s) 支持的指令集模式(如 32-bit, 64-bit 是否支持 64 位
CPU(s) 逻辑 CPU 总数 并行线程上限之一
Thread(s) per core 每核心线程数(超线程) 1=无超线程,2=通常开启超线程
Core(s) per socket 每插槽物理核心数 单颗 CPU 的物理核心
Socket(s) 物理插槽数 物理 CPU 颗数
NUMA node(s) NUMA 节点数 多路 CPU/多内存通道拓扑相关
Model name CPU 型号与标称频率 影响指令集、微架构特性
CPU MHz / BogoMIPS 当前/估算频率 实时频率会随负载与省电策略变化
L1d/L1i/L2/L3 cache 各级缓存大小 影响命中率与延迟
Virtualization 虚拟化支持(如 VT‑x/AMD‑V 是否可直通/嵌套虚拟化
On-line CPU(s) list 当前在线逻辑 CPU 列表 结合 CPU(s) 判断是否离线降配
以上字段由 lscpu 直接输出,适合一眼掌握拓扑与能力。

三、/proc/cpuinfo 常用字段与判断方法

字段 含义 典型用法/判断
processor 逻辑处理器编号(从 0 起) 统计逻辑 CPU 数量
physical id 物理 CPU 编号 统计物理 CPU 颗数
core id 物理核心编号(在同一物理 CPU 内) 结合 physical id 判断超线程
cpu cores 该物理 CPU 的核心数 单颗 CPU 的物理核心
siblings 该物理 CPU 的逻辑处理器数 cpu cores 对比判断是否启用超线程
model name CPU 型号与标称频率 与 lscpu 的 Model name 一致
cpu MHz 当前运行频率 动态变化,非固定标称值
cache size 缓存大小 通常为 L3 缓存
flags 指令集特性标志 lm(Long Mode,支持 64 位)
fpu 浮点单元是否存在 一般为 yes
实用命令(统计与判断):
  • 物理 CPU 数量:cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l
  • 逻辑 CPU 数量:cat /proc/cpuinfo | grep 'processor' | wc -l
  • 每颗物理 CPU 的核心数:cat /proc/cpuinfo | grep 'cpu cores' | uniq
  • 是否支持 64 位:cat /proc/cpuinfo | grep 'flags' | grep -q ' lm ' && echo "64-bit supported" || echo "Not 64-bit"(lm 表示 Long Mode)
  • 是否启用超线程:若同一 physical id 下存在不同 core id 的多个 processor 共享同一 core id,则说明启用了超线程;等价判断为:siblings > cpu cores

四、拓扑计算与示例

  • 常用公式:
    • 总物理核心数 = Socket(s) × Core(s) per socket
    • 总逻辑 CPU 数 = Socket(s) × Core(s) per socket × Thread(s) per core
    • 超线程判断:Thread(s) per core = 2 通常代表启用超线程;若为 1 则无超线程。
  • 示例解读(来自 lscpu 的典型输出片段):
    • Architecture: x86_64
    • CPU(s): 8
    • Thread(s) per core: 2
    • Core(s) per socket: 4
    • Socket(s): 1
    • 计算:物理核心数 = 1 × 4 = 4;逻辑 CPU 数 = 1 × 4 × 2 = 8;超线程:开启(2 线程/核)。

0