在 Linux 系统中,/proc/cpuinfo 是内核提供的虚拟文件,用于展示 CPU 的硬件信息。解析它可以帮助你了解 CPU 型号、核心数、线程数等关键指标。
下面从 字段含义 → 常见解析方法 → 实战示例 逐步说明。
cat /proc/cpuinfo
典型输出(x86 示例):
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
stepping : 10
cpu MHz : 1800.000
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
flags : fpu vme de pse tsc msr pae mce cx8 ...
| 字段 | 含义 |
|---|---|
processor |
逻辑 CPU 编号(从 0 开始) |
vendor_id |
CPU 厂商(Intel / AMD) |
cpu family / model |
CPU 架构型号 |
model name |
CPU 名称 |
cpu MHz |
当前频率 |
cache size |
L2/L3 缓存大小 |
| 字段 | 含义 |
|---|---|
physical id |
物理 CPU 编号(多路服务器) |
core id |
物理核心编号 |
cpu cores |
每个物理 CPU 的 核心数 |
siblings |
每个物理 CPU 的 逻辑 CPU 数 |
✅ 判断逻辑:
siblings > cpu cores → 开启了 超线程(HT)siblings == cpu cores → 未开启 HTnproc
# 或
grep -c processor /proc/cpuinfo
grep "physical id" /proc/cpuinfo | sort -u | wc -l
grep "cpu cores" /proc/cpuinfo | uniq
echo "逻辑CPU: $(nproc)"
echo "物理核心: $(grep 'cpu cores' /proc/cpuinfo | uniq | awk '{print $4}')"
#!/bin/bash
echo "物理CPU个数: $(grep 'physical id' /proc/cpuinfo | sort -u | wc -l)"
echo "每CPU核心数: $(grep 'cpu cores' /proc/cpuinfo | uniq | awk '{print $4}')"
echo "逻辑CPU总数: $(grep -c processor /proc/cpuinfo)"
echo "是否超线程: $([ $(grep -c processor /proc/cpuinfo) -gt $(grep 'cpu cores' /proc/cpuinfo | uniq | awk '{print $4}') ] && echo 是 || echo 否)"
lscpu
示例:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 8
On-line CPU(s): 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
✅ 推荐:
/proc/cpuinfolscpu在 ARM(如树莓派)上:
physical id / core idprocessor 和 model name示例:
processor : 3
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
如果你有:
可以告诉我,我可以给你 定制解析方案。