适用于 Linux 5.4+、sysstat 12.2+。要在故障窗口执行,并确认当前账号能读取进程和块设备统计;示例路径要换成实际业务路径。先把文件系统映射到块设备,再连续采样:
date -u
findmnt -T /path/to/data -o TARGET,SOURCE,FSTYPE,OPTIONS
lsblk -o NAME,KNAME,TYPE,PKNAME,SIZE,ROTA,MOUNTPOINTS
iostat -xzy 1 10
pidstat -d 1 10
cat /proc/pressure/io
await 包含排队和设备处理时间,aqu-sz 看平均队列长度;两者一起升高,才更像 I/O 路径正在积压。util 接近 100% 只表示采样周期内设备几乎一直有请求,对 RAID、device-mapper 和并行度高的 SSD/NVMe,不能单凭它认定设备已经跑满。
如果 findmnt 指向 LVM、加密卷或容器存储,记得同时看映射设备和下层物理盘。pidstat -d 能找出主要读写进程,但页缓存回写可能落在内核线程上,所以进程写入速率和设备写入速率不一定同步。PSI 的 some/full 更适合判断任务是否真的因 I/O 停顿,单次 avg10 快照仍要结合持续采样。
调整并发、队列或存储后,用相同采样间隔和相近负载复测;除了 await、队列和 PSI,还要确认业务吞吐、尾延迟及错误率没有变差。