装
sudo apt install sysstat # iostat / mpstat / sar 都在这
实战
iostat # 综合
iostat -x # 详细(扩展)
iostat -xz 1 # 每秒,跳过 0 IO 的设备
iostat -x 2 5 # 2 秒间隔,采 5 次
iostat -dx /dev/sda # 只看 sda
iostat -mx # 用 MB/s 单位
关键列(iostat -x)
Device r/s w/s rkB/s wkB/s r_await w_await %util
sda 12.0 45.0 1500 3000 1.5 2.0 30.0
| 列 |
含义 |
r/s w/s |
每秒读 / 写次数(IOPS) |
rkB/s wkB/s |
每秒读 / 写 KB |
r_await w_await |
读 / 写平均延迟(ms) |
%util |
设备繁忙度(接近 100% = 满载) |
阈值参考(粗略)
| 看 |
何时担心 |
%util |
> 80% → 接近满载 |
await |
机械盘 > 50ms / SSD > 10ms → 慢 |
| 持续高 IOPS + 高 await |
IO 瓶颈 |
实战:找哪个进程在做大量 IO
# iotop(要装 + sudo)
sudo apt install iotop
sudo iotop -o # 只看真有 IO 的进程
sudo iotop -oP # 按进程聚合(不按线程)
或 pidstat:
pidstat -d 1 # 各进程 IO 速率
配合 dstat(已被 sar 替代)
# 简洁实时多维度
sudo apt install dstat
dstat # 默认综合
dstat -tcmd 1 # 时间 / CPU / 内存 / 磁盘
历史数据:sar
sar -d 1 10 # 实时
sar -d -f /var/log/sysstat/saXX # 看历史(cron 每日存)
坑
iostat 第一行是开机来平均——看第二行起
%util 在 SSD / NVMe 上可能假高——SSD 能并行处理 IO,util 100% 不一定是瓶颈
- IO 不只是磁盘——NFS / iSCSI 也算