iostat -d -k 1 sda2可实时监控sda2分区的tps与吞吐量;加-x参数可显示await、%util等扩展指标;-p sda则一次性列出该盘所有子分区io统计。

直接用 iostat -d -k 1 就能看到所有设备和分区的实时 IO,但要聚焦单个分区(比如 sda2),关键在于指定设备名并搭配合理参数。
指定分区名运行命令
最简方式是把分区名作为参数加在命令末尾:
-
iostat -d -k 1 sda2:每秒刷新一次,只显示sda2的读写速率、TPS 等基础指标 -
iostat -d -x -k 1 5 sda2:每秒刷新,共输出 5 次,同时启用扩展模式(-x),能看到r/s、w/s、await、%util等关键延迟与利用率数据
区分物理盘与逻辑分区的显示逻辑
iostat 默认列出所有已识别的块设备,包括整盘(如 sda)和它的子分区(如 sda1、sda2)。当你指定 sda2,它不会自动关联到 sda 的总负载,而是单独采集该分区的内核 I/O 计数器——这意味着数据完全独立,不受其他分区干扰。
注意:某些 LVM 或加密卷(如 dm-0)也属于“设备”,可用同样方式监控,例如 iostat -d -x -m 2 dm-0(以 MB/s 为单位)。
结合 -p 参数查看更细粒度的分区信息
如果想一次性看某块盘下所有分区,又不想滚动翻找,可用 -p 选项:
-
iostat -d -p sda 2:每 2 秒刷新,显示sda及其全部子分区(sda1、sda2…)的 IO 统计 -
iostat -d -p -x sda 1:带扩展字段,适合排查具体哪个分区响应慢或占用高
这个方式比逐个指定更高效,尤其当不确定具体分区号但知道盘符时。
快速判断分区是否存在 IO 瓶颈
盯住几个核心字段即可初步定位问题:
-
%util > 80%持续偏高 → 设备接近饱和,可能是硬件瓶颈或队列堆积 -
await > 10ms(普通 SATA 盘)或> 1ms(NVMe)→ 平均等待时间过长,需查是否请求过多或存储响应慢 -
r/s或w/s突然飙升,而rkB/s/wkB/s变化不大 → 小 IO 频繁,常见于日志写入、数据库随机访问











