Linux CPUInfo 输出结果详解
一、/proc/cpuinfo 文件概述
/proc/cpuinfo 是 Linux 内核提供的虚拟文件,存储了系统中所有 CPU 核心的详细信息(包括物理 CPU、核心、逻辑线程的配置及特性)。通过 cat /proc/cpuinfo 命令可查看完整内容,其输出按逻辑核心逐一列出,每行对应一个属性字段。
二、/proc/cpuinfo 关键字段解析
1. 处理器标识
- processor:逻辑处理核心的编号(从 0 开始递增)。每个逻辑核心(包括超线程生成的虚拟核心)都有唯一编号。
- vendor_id:CPU 制造商标识。常见值:“GenuineIntel”(英特尔)、“AuthenticAMD”(AMD)。
- model name:CPU 具体型号及标称主频(如“Intel® Core™ i7-9750H CPU @ 2.60GHz”),直观反映 CPU 型号。
2. CPU 特性与修订信息
- stepping:CPU 生产修订版本号。数值越大表示版本越新,通常包含 bug 修复或性能优化。
- microcode:CPU 微码版本。用于修复硬件漏洞(如 Spectre、Meltdown)或提升稳定性,需通过 BIOS 或内核更新。
- flags:CPU 支持的功能特性列表(如“sse”“avx”“vmx”)。常见特性:“sse”(流式 SIMD 扩展,提升多媒体性能)、“avx”(高级向量扩展,加速浮点运算)、“vmx”(英特尔虚拟化技术,支持硬件虚拟化)。
3. 频率与缓存
- cpu MHz:当前 CPU 核心的运行频率(单位:MHz)。注意:此值为实时值,节能状态下可能低于标称频率。
- cache size:CPU 二级缓存大小(单位:KB 或 MB)。二级缓存用于存储频繁访问的数据,越大越能提升 CPU 处理效率。
4. 物理与逻辑核心关系
- physical id:物理 CPU 的编号(多路 CPU 系统中区分不同插槽)。值为 0 表示第一个物理 CPU,1 表示第二个,依此类推。
- core id:当前物理核心在其所属物理 CPU 中的编号(区分同一物理 CPU 内的不同物理核心)。
- cpu cores:每个物理 CPU 的物理核心数(无超线程时,逻辑核心数=物理核心数;有超线程时,逻辑核心数=物理核心数×2)。
- siblings:单个物理 CPU 上的逻辑核心数(=物理核心数×超线程倍数,如超线程开启时为物理核心数的 2 倍)。
- apicid:逻辑核心的全局唯一标识符(用于多处理器系统中的通信)。
三、lscpu 命令详解
lscpu 是用户友好的 CPU 信息工具,从 /proc/cpuinfo、sysfs 收集数据,输出更结构化、易读的信息(支持过滤、JSON 格式等)。
常用选项
-e 或 --extended:以可读格式显示所有信息(默认包含 CPU 编号、核心、插槽等);
-p 或 --parse:以可解析格式输出(适合脚本处理,用逗号分隔字段);
-a 或 --all:显示在线和离线 CPU(-e 的默认行为);
-b 或 --online:仅显示在线 CPU(-p 的默认行为);
-C 或 --caches:显示缓存详细信息(如 L1/L2/L3 缓存的共享方式)。
关键输出字段解析
- Architecture:CPU 架构(如“x86_64”表示 64 位 Intel/AMD 架构,“i386”表示 32 位架构)。
- CPU(s):系统总逻辑 CPU 数(=物理 CPU 数×每个物理 CPU 的物理核心数×每个核心的线程数,如 2 路物理 CPU、每路 4 核、每核 2 线程,则为 16)。
- Thread(s) per core:每个物理核心的线程数(1 表示关闭超线程,2 表示开启超线程)。
- Core(s) per socket:每个物理 CPU 插槽的物理核心数。
- Socket(s):物理 CPU 插槽数(主板支持的 CPU 数量)。
- NUMA node(s):NUMA(非统一内存访问)节点数(多路 CPU 系统中,每个物理 CPU 通常对应一个 NUMA 节点)。
- Vendor ID:同
/proc/cpuinfo 的 vendor_id。
- BogoMIPS:CPU 性能的粗略估算值(基于内核启动时的计时,用于内核内部调度,不代表真实运算速度)。
- Flags:同
/proc/cpuinfo 的 flags(支持的特性列表)。
四、实用技巧:快速提取关键信息
1. 查看 CPU 型号
cat /proc/cpuinfo | grep "model name" | uniq
uniq 用于去重(避免重复输出同一型号)。
2. 查看物理 CPU 数量
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
sort | uniq 提取唯一的 physical id,wc -l 统计数量。
3. 查看每个物理 CPU 的核心数
cat /proc/cpuinfo | grep "cpu cores" | uniq
uniq 确保只输出一个值(所有物理 CPU 的核心数一致)。
4. 检查是否开启超线程
cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | uniq
若 siblings 值是 cpu cores 的 2 倍,则开启超线程(如 cpu cores : 4、siblings : 8)。
5. 查看逻辑 CPU 数量
cat /proc/cpuinfo | grep "processor" | wc -l
统计逻辑核心的总数。
6. 查看 CPU 支持的特性
cat /proc/cpuinfo | grep "flags" | uniq
flags 中的关键特性(如“avx2”“vmx”)反映了 CPU 的高级功能支持。