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 也算