iostat通过-dx -y 1参数组合可实时监控磁盘读写速率(rkB/s、wkB/s)与利用率(%util),结合r/s、w/s、avgqu-sz和await等字段精准定位I/O瓶颈,无需优化磁盘本身但能明确优化方向。

直接用 iostat 查读写速率和利用率,关键不是“装了就能看”,而是选对参数、盯住几个核心字段——它本身不优化磁盘,但能精准告诉你瓶颈在哪、往哪优化。
先装好并跑出有效数据
统信UOS或主流Linux系统通常需手动安装:
- 执行
sudo apt install sysstat(Debian/Ubuntu/统信UOS) - 首次运行时加
-y跳过初始平均值(不准),例如:iostat -dx -y 1,每秒刷新一次扩展统计 -
-d表示只看磁盘,-x开启详细指标,-y跳过首行,1是刷新间隔(秒)
重点看这三组字段判断读写与负载
读写速率:看 rkB/s(每秒读取KB数)和 wkB/s(每秒写入KB数)。数值高低要结合设备类型判断——HDD正常在50–150 MB/s,SATA SSD一般200–550 MB/s,NVMe SSD可达1000+ MB/s。若远低于理论值,说明存在限制(如队列深、缓存策略、驱动或线缆问题)。
读写频次:看 r/s 和 w/s,合起来就是IOPS。高IOPS低吞吐(比如r/s很高但rkB/s很低),大概率是小文件随机读写;反之则是大块顺序操作。
设备利用率:紧盯 %util。持续 >80% 表明磁盘忙于处理请求,接近100%即已饱和;同时观察 avgqu-sz(平均队列长度),>1 就说明请求开始排队,配合高 await(平均等待时间),基本可断定I/O成为瓶颈。
定位具体磁盘和读写差异
如果系统有多个磁盘(如sda、nvme0n1),不要只看汇总:
- 用
iostat -dx /dev/sda 1单独监控某块盘,排除其他设备干扰 - 对比
r_await和w_await:若写等待明显更高,可能是日志写入密集、sync策略严苛,或写缓存被禁用 - 注意
%iowait(CPU列中)是否同步偏高:>30% 说明CPU大量时间在等磁盘,进一步佐证I/O拖慢整体响应
结合现象快速验证是否真瓶颈
别只盯着数字——把指标和实际表现挂钩:
- 系统卡顿 +
%util长期95% +await>50ms(HDD)或 >10ms(SSD)→ 典型磁盘瓶颈 - 应用写文件慢,但
wkB/s很低、w/s却很高 → 可能是频繁小写+强制sync,应检查应用日志策略或fsync调用 -
rkB/s突然飙升且r_await暴涨 → 可能是备份、扫描或数据库全表读引发的瞬时压力

















