iostat -dx 1 可实时监控磁盘读写吞吐量,关键字段为 rkb/s(读)和 wkb/s(写),单位 kb/s,相加后除以1024得 mb/s;需先安装 sysstat 并启用服务,支持按设备过滤、自动单位换算及结合 %util、await 等指标综合判断磁盘负载。

直接用 iostat -dx 1 就能实时看到磁盘读写吞吐量,关键看 rkB/s 和 wkB/s 这两列,单位是 KB/s,加起来就是总吞吐量。
确认安装并启用 sysstat
多数发行版默认不预装 iostat,需手动安装:
- Ubuntu/Debian:运行
sudo apt install sysstat - CentOS/RHEL:运行
sudo yum install sysstat或sudo dnf install sysstat - 安装后建议启用服务(尤其需要历史数据时):
sudo systemctl enable sysstat && sudo systemctl start sysstat
核心命令与吞吐量字段解读
执行 iostat -dx 1 后,重点关注扩展输出中的以下字段:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- rkB/s:每秒从磁盘读取的千字节数 → 实时读吞吐量
- wkB/s:每秒向磁盘写入的千字节数 → 实时写吞吐量
- 两者相加再除以 1024,即可换算为 MB/s(例如 rkB/s=20480 + wkB/s=10240 → 总吞吐 ≈ 30 MB/s)
- avgrq-sz 可辅助判断 IO 类型:值小(如 128)偏向顺序大块读写
聚焦特定设备或简化输出
避免被无关设备干扰,可精准定位目标磁盘:
- 只查某块盘(如 sda):
iostat -dx 1 /dev/sda - 同时显示所有块设备(含 LVM、NVMe 等):
iostat -dxp ALL 1 - 让输出更易读(自动选单位):
iostat -d -h 1,会按大小自动切 KB/MB/GB 单位 - 配合
watch实现清爽刷新:watch -n 1 'iostat -dx 1 1 | grep -A 1 "Device\|sda"'
结合其他指标交叉验证吞吐压力
单看吞吐量不够,要结合利用率和延迟判断是否过载:
- %util ≥ 80% 且 await > 10ms:说明磁盘已饱和,吞吐再高也难提升响应
- r/s + w/s 高但 rkB/s + wkB/s 低:可能是大量小文件随机 IO,IOPS 成瓶颈而非带宽
- avgqu-sz > 1 持续存在:队列堆积,请求在排队,实际吞吐受制于服务速度










