来源:未知来源 | 发布日期:2026-07-30
磁盘 IO 监控参考
系统级 IO 监控的两大核心工具 iostat 和 vmstat 逐字段解读,配合使用率/饱和度/IOPS/吞吐量/响应时间五指标框架,快速判断磁盘瓶颈。
五指标框架
| 指标 |
含义 |
典型阈值 |
| I/O 使用率 (%util) |
磁盘处理 IO 的时间百分比 |
> 80% 饱和,> 95% 严重 |
| 饱和度 (avgqu-sz) |
IO 请求队列拥堵程度 |
> 8 严重,> 50 夯死 |
| IOPS (r/s, w/s) |
每秒读写请求数 |
HDD ~200, SSD 几万, NVMe 几十万 |
| 吞吐量 (rMB/s, wMB/s) |
每秒传输数据总量 |
结合带宽上限 |
| 响应时间 (await) |
IO 请求从发出到完成的平均等待 |
HDD > 50ms, SSD > 10ms, NVMe > 5ms |
iostat:磁盘 IO 核心监控
iostat -xm 2
-x:扩展信息
-m:MB 单位
2:每 2 秒刷新
avg-cpu 段
| 字段 |
含义 |
异常信号 |
| %user |
用户态 CPU 占比 |
结合 us/sy 判断 |
| %nice |
nice 优先级进程 CPU 占比 |
— |
| %system |
内核态 CPU 占比 |
sy 高 + cs 高 → 上下文切换 |
| %iowait |
CPU 等待 IO 完成的时间百分比 |
> 10% → IO 瓶颈 |
| %steal |
虚拟机被宿主机偷走的 CPU |
虚拟机场景 |
| %idle |
CPU 空闲百分比 |
持续低 → CPU 不足 |
Device 段
| 字段 |
含义 |
对应指标 |
异常阈值 |
| rrqm/s |
每秒合并读请求数 |
— |
— |
| wrqm/s |
每秒合并写请求数 |
— |
— |
| r/s |
每秒读请求次数 |
IOPS |
结合设备上限 |
| w/s |
每秒写请求次数 |
IOPS |
结合设备上限 |
| rMB/s |
每秒读取数据量 |
吞吐量 |
结合带宽上限 |
| wMB/s |
每秒写入数据量 |
吞吐量 |
结合带宽上限 |
| avgrq-sz |
平均 IO 请求大小(扇区) |
— |
< 8KB 随机小 IO |
| avgqu-sz |
平均队列长度 |
饱和度 |
> 2 积压,> 8 严重,> 50 夯死 |
| await |
平均 IO 等待时间 (ms) |
响应时间 |
HDD > 50ms, SSD > 10ms |
| svctm |
平均服务时间 (ms) |
— |
— |
| %util |
设备忙碌时间百分比 |
使用率 |
> 80% 饱和,> 95% 严重 |
核心判断:await vs svctm
| 关系 |
含义 |
| await ≈ svctm |
几乎没有等待时间,磁盘响应正常 |
| await >> svctm |
队列太长,磁盘响应太慢,需要优化 |
vmstat:系统级资源监控
vmstat 2 5
procs 段
| 字段 |
含义 |
异常信号 |
| r |
就绪队列进程数(CPU 瓶颈指标) |
> CPU 核心数 → CPU 瓶颈 |
| b |
阻塞等待 IO 的进程数(磁盘瓶颈指标) |
> 0 → 磁盘 IO 慢 |
memory 段(KB)
| 字段 |
含义 |
异常信号 |
| swpd |
已使用 swap 总量 |
持续上涨 + si 频繁非 0 → 内存不足 |
| free |
物理内存剩余量 |
Linux 用空闲内存做缓存,低是正常的 |
| buff |
块设备缓冲区(磁盘元数据缓存) |
— |
| cache |
页缓存(文件读写缓存) |
— |
swap 段
| 字段 |
含义 |
异常信号 |
| si |
swap in(每秒从交换区读入内存) |
长期非 0 → 内存压力 |
| so |
swap out(每秒写入交换区) |
长期非 0 → 内存压力 |
io 段(1 块 = 512 字节)
| 字段 |
含义 |
异常信号 |
| bi |
每秒从磁盘读入块数 |
持续高 → 读 IO 压力大 |
| bo |
每秒写入磁盘块数 |
持续高 → 写 IO 压力大 |
system 段
| 字段 |
含义 |
异常信号 |
| in |
每秒硬件中断次数 |
突增 → 设备频繁中断 |
| cs |
每秒上下文切换次数 |
突增 → 多线程锁竞争 |
cpu 段(总和 100%)
| 字段 |
含义 |
异常信号 |
| us |
用户态 CPU 占比 |
持续 > 80% → CPU 密集 |
| sy |
内核态 CPU 占比 |
高 + cs 高 → 上下文切换 |
| id |
空闲 CPU 占比 |
持续低 → CPU 不足 |
| wa |
iowait(关键 IO 瓶颈指标) |
> 10% + b > 0 → IO 瓶颈 |
| st |
steal(虚拟机场景) |
> 10% → 宿主机超卖 |
综合决策表
| 场景 |
关键指标组合 |
判断 |
| 磁盘饱和 |
%util > 90% + await 高 + avgqu-sz 持续走高 |
磁盘处理能力不足 |
| 队列堆积 |
avgqu-sz > 8 + await 高但 %util 不高 |
应用并发 IO 过多 |
| 响应延迟 |
await 远大于 svctm |
磁盘队列太长,响应太慢 |
| CPU 瓶颈 |
r > 核心数 + us/sy 高 + wa 低 |
CPU 资源不足 |
| IO 瓶颈 |
wa > 10% + b > 0 + bi/bo 高 + r 不大 |
磁盘 IO 瓶颈 |
| 内存不足 |
si/so 频繁非 0 + swpd 上涨 + free 走低 |
物理内存不足 |
| 上下文切换 |
cs 巨大 + sy 不断升高 |
多线程锁竞争 |
相关工具
| 工具 |
用途 |
场景 |
| iostat |
磁盘 IO 性能监控 |
吞吐量/IOPS/延迟 |
| vmstat |
系统整体资源监控 |
CPU/内存/IO 综合判断 |
| iotop |
按进程查看 IO |
定位具体进程 |
| atop |
分磁盘分进程精细化统计 |
长期监控 |
| pidstat -d |
进程级 IO 统计 |
进程维度 |
| fio |
基准测试 |
磁盘性能压测 |
关联页面