lsblk通过缩进直观展示块设备嵌套关系,顶层无缩进为物理磁盘(如nvme0n1、sda),其下每级缩进代表分区、LUKS加密层、LVM逻辑卷或挂载点的父子依赖关系;加-f显示FSTYPE、UUID、MOUNTPOINT以确认挂载状态,指定设备(如/dev/nvme0n1)或用PKNAME列可避免误判。

lsblk 看块设备嵌套关系,缩进即层级
物理磁盘、分区、LUKS 加密层、LVM 逻辑卷、挂载点之间的父子关系,lsblk 用缩进直接表达,不用猜。顶层无缩进的是物理设备(如 nvme0n1、sda),其下每级缩进代表一次封装或映射。
常见错误是把 lsblk 当成单纯“列出磁盘”,结果忽略缩进含义,误判 LVM 或加密卷是否已激活。比如看到 sda2_crypt 缩进在 sda2 下,说明它依赖该分区——若 sda2 没被 cryptsetup 解开,sda2_crypt 就不会出现在树里。
-
lsblk -f必加:补全FSTYPE、UUID、MOUNTPOINT,否则无法确认哪个逻辑卷挂在哪 -
lsblk /dev/nvme0n1指定设备:避免被几十个 USB 存储干扰,尤其在服务器插多块盘时 -
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,PKNAME:PKNAME显示父设备名(如sda2的PKNAME是sda),比纯缩进更防误读
lspci -t 看 PCIe 物理连接路径,不是列表是拓扑
lspci -t 输出的树状图反映真实硬件连接层级:Root Port → Bridge → Endpoint,而非设备功能分类。它不依赖驱动是否加载,也不受 ACPI 描述缺失影响,是唯一能确认“某 NVMe 卡到底挂在 CPU 直连通道还是 PCH 下”的命令。
容易踩的坑是把 lspci 默认列表输出当拓扑用。例如 01:00.0 和 02:00.0 在列表里并列,但 lspci -t 可能显示前者挂在 00:01.0(CPU 直连),后者挂在 00:1c.0(PCH 桥),带宽和延迟差一倍以上。
- 符号
-+-和+-表示桥接分支点,紧随其后的地址(如01:00.0)就是该桥下的第一个设备 - 同一总线下多个设备(如
02:00.0和02:00.1)共享该总线带宽,不能单独提速 -
lspci -t不显示 Thunderbolt 下游设备——那些属于另一个 PCIe 域,得用lspci -D查完整 domain 地址再交叉验证
numactl --hardware 看 NUMA 节点硬分布,非运行时状态
numactl --hardware 输出的是 BIOS/固件上报给内核的原始 NUMA 拓扑,不是当前进程实际内存分配位置。它告诉你“硬件上内存控制器和 CPU 核心怎么物理分组”,这是调优前提。
很多人用 lscpu | grep -i numa 快速扫一眼就完事,但 lscpu 可能因 SNC 模式虚报节点数,或在虚拟机里固定返回 NUMA node(s): 1,掩盖真实拓扑。真正要定位跨节点访问瓶颈,必须看 numactl --hardware 的 node distances 表。
- 对角线值(如 node0→node0)应为最小(通常 10),非对角线若 ≥30,说明跨节点访存开销显著
- 若输出显示多个 node,但
dmesg | grep -i numa没有 “NUMA: Initialized” 字样,大概率是 BIOS 关了 NUMA 或内核加了numa=off -
/sys/devices/system/node/下的node0/meminfo才反映运行时内存使用,和numactl --hardware的静态拓扑互补,不能互相替代
lshw -short 需 root 权限才准,缺权限会漏关键字段
lshw -short 看似轻量,但不加 sudo 会导致内存插槽容量、CPU 序列号、磁盘 WWN、固件版本等全部为空。这不是功能阉割,而是内核接口 /sys/firmware/acpi/tables/ 和 /proc/meminfo 的权限控制所致。
有人习惯先跑一遍普通用户版 lshw -short,发现“内存大小不对”就以为硬件坏了,其实只是没权限读 SPD 数据。同理,lshw -class disk 若没 root,product 和 serial 字段常为空,无法区分同型号多盘。
-
sudo lshw -short是最低代价获取可信概览的方式,比拼凑lscpu+lsmem+lsblk更省事 - 导出 HTML 报告:
sudo lshw -html > hw.html,适合存档或发给同事——所有字段一次填满,不用反复 sudo - 查特定类时别漏
-class:如sudo lshw -class network -short只列网卡,避免被声卡、USB 控制器刷屏
lsblk 说存储堆叠,lspci -t 说 PCIe 连接,numactl --hardware 说内存控制器分组,lshw 说全局器件归属——它们各自读取不同内核接口,缺一不可。忽略任一层,都可能把性能问题归错因。


















