lscpu 命令 #
lscpu
命令用于显示 CPU 架构信息,包括 CPU 数量、核心数、线程数、缓存大小等。它从/proc/cpuinfo
和sysfs
中收集信息,并以易于阅读的格式呈现。
语法 #
lscpu [选项]
常用选项 #
选项 | 描述 |
---|---|
-a, --all |
打印在线和离线 CPU(默认只打印在线 CPU) |
-b, --online |
只打印在线 CPU(默认) |
-c, --offline |
只打印离线 CPU |
-e, --extended[=列表] |
打印扩展的可读格式 |
-J, --json |
使用 JSON 格式输出 |
-p, --parse[=列表] |
打印可解析格式 |
-s, --sysroot 目录 |
使用指定目录作为系统根目录 |
-x, --hex |
使用十六进制掩码打印 CPU 掩码 |
-y, --physical |
打印物理而不是逻辑 IDs |
-h, --help |
显示帮助信息 |
-V, --version |
显示版本信息 |
常见用法 #
1. 显示 CPU 信息 #
lscpu
输出示例:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 142
Model name: Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz
Stepping: 11
CPU MHz: 800.024
CPU max MHz: 4600.0000
CPU min MHz: 400.0000
BogoMIPS: 3999.93
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 8192K
NUMA node0 CPU(s): 0-7
2. 显示所有 CPU(包括离线 CPU) #
lscpu -a
3. 以 JSON 格式输出 #
lscpu -J
4. 以可解析格式输出 #
lscpu -p
输出示例:
# The following is the parsable format, which can be fed to other
# programs. Each different item in every column has an unique ID
# starting from zero.
# CPU,Core,Socket,Node,,L1d,L1i,L2,L3
0,0,0,0,,0,0,0,0
1,1,0,0,,1,1,1,0
2,2,0,0,,2,2,2,0
3,3,0,0,,3,3,3,0
4,0,0,0,,0,0,0,0
5,1,0,0,,1,1,1,0
6,2,0,0,,2,2,2,0
7,3,0,0,,3,3,3,0
5. 显示扩展信息 #
lscpu -e
输出示例:
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 yes 4600.0000 400.0000
1 0 0 1 1:1:1:0 yes 4600.0000 400.0000
2 0 0 2 2:2:2:0 yes 4600.0000 400.0000
3 0 0 3 3:3:3:0 yes 4600.0000 400.0000
4 0 0 0 0:0:0:0 yes 4600.0000 400.0000
5 0 0 1 1:1:1:0 yes 4600.0000 400.0000
6 0 0 2 2:2:2:0 yes 4600.0000 400.0000
7 0 0 3 3:3:3:0 yes 4600.0000 400.0000
6. 使用十六进制掩码 #
lscpu -x
7. 显示物理 ID 而不是逻辑 ID #
lscpu -y
输出解释 #
lscpu
命令的输出包含以下主要信息:
- Architecture:CPU 架构(如 x86_64、arm64 等)
- CPU op-mode(s):CPU 操作模式(32 位、64 位)
- Byte Order:字节序(大端或小端)
- CPU(s):逻辑 CPU 总数
- On-line CPU(s) list:在线 CPU 列表
- Thread(s) per core:每个核心的线程数(超线程)
- Core(s) per socket:每个插槽的核心数
- Socket(s):CPU 插槽数(物理 CPU 数)
- NUMA node(s):NUMA 节点数
- Vendor ID:CPU 厂商标识
- CPU family:CPU 系列
- Model:CPU 型号
- Model name:CPU 型号名称
- Stepping:CPU 步进
- CPU MHz:当前 CPU 频率
- CPU max MHz:最大 CPU 频率
- CPU min MHz:最小 CPU 频率
- BogoMIPS:系统性能的粗略估计
- Virtualization:虚拟化技术支持
- L1d cache:L1 数据缓存大小
- L1i cache:L1 指令缓存大小
- L2 cache:L2 缓存大小
- L3 cache:L3 缓存大小
- NUMA node0 CPU(s):NUMA 节点 0 中的 CPU 列表
提示 #
lscpu
命令是util-linux
包的一部分,在大多数 Linux 发行版中默认安装- 使用
-e
选项可以获得更详细的 CPU 信息,包括每个 CPU 核心的详细信息 - 使用
-p
选项可以生成可解析的输出,便于脚本处理 - 在虚拟化环境中,
lscpu
可以帮助确认虚拟 CPU 的配置 - 在多处理器系统上,
lscpu
可以显示 NUMA 拓扑 - 使用
-J
选项可以生成 JSON 格式的输出,便于程序处理 - 结合
grep
命令可以快速查找特定的 CPU 信息,如lscpu | grep "CPU(s)"
- 在系统性能调优时,了解 CPU 缓存大小和层次结构非常重要