lscpu命令

lscpu 命令 #

lscpu命令用于显示 CPU 架构信息,包括 CPU 数量、核心数、线程数、缓存大小等。它从/proc/cpuinfosysfs中收集信息,并以易于阅读的格式呈现。

语法 #

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 缓存大小和层次结构非常重要