温馨提示×

怎样解析linux cpuinfo

小樊
32
2026-10-19 19:45:50
栏目: 智能运维

在 Linux 系统中,/proc/cpuinfo 是查看 CPU 硬件信息的重要文件。下面从如何查看、字段含义、常见解析方法、实用示例几个方面说明。


一、如何查看 cpuinfo

cat /proc/cpuinfo

或用更可读的方式:

lscpu

lscpu 实际上是对 /proc/cpuinfo 的整理和汇总。


二、cpuinfo 中常见字段含义

每个逻辑 CPU 会有一段信息,常见字段如下:

字段 含义
processor 逻辑 CPU 编号(从 0 开始)
vendor_id CPU 厂商(如 GenuineIntel、AuthenticAMD)
cpu family CPU 家族
model CPU 型号
model name CPU 名称(最重要)
stepping 步进版本
physical id 物理 CPU 编号
core id 核心编号
cpu cores 一个物理 CPU 的核心数
siblings 一个物理 CPU 的逻辑 CPU 数
flags CPU 支持的指令集(如 sse、avx)
bogomips 粗略性能参考值

三、如何解析关键信息

1. 查看 CPU 型号

grep "model name" /proc/cpuinfo | uniq

2. 查看逻辑 CPU 数量

grep -c processor /proc/cpuinfo

3. 查看物理 CPU 数量

grep "physical id" /proc/cpuinfo | sort | uniq | wc -l

4. 查看每个物理 CPU 的核心数

grep "cpu cores" /proc/cpuinfo | uniq

5. 判断是否开启超线程

逻辑CPU数 = 物理CPU数 × cpu cores × 2

示例:

  • 物理 CPU:1
  • cpu cores:8
  • processor 数量:16
    → 开启了超线程

四、使用 awk / shell 解析示例

统计逻辑 CPU

awk '/^processor/{n++} END{print n}' /proc/cpuinfo

提取型号和核心数

awk -F: '/model name|cpu cores/{print $2}' /proc/cpuinfo | uniq

五、结合 lscpu 快速理解

lscpu

重点看:

  • CPU(s):逻辑 CPU 数
  • Core(s) per socket:每颗 CPU 核心数
  • Socket(s):物理 CPU 数
  • Thread(s) per core:每核线程数

六、编程解析(示例:Python)

with open('/proc/cpuinfo') as f:
    info = f.read()

for line in info.splitlines():
    if line.startswith('model name'):
        print(line)

如果你有具体需求(比如:判断超线程、统计 NUMA、写监控脚本),可以告诉我,我可以给你更针对性的解析方式。

0 踩