1. 磁盘性能监控三剑客:iostat、dstat、iotop深度解析
在Linux系统运维和性能调优领域,磁盘I/O性能监控是每个工程师必须掌握的硬核技能。当服务器出现响应迟缓、应用卡顿等问题时,磁盘I/O往往是首要怀疑对象。本文将深入解析三个最常用的磁盘监控工具:iostat、dstat和iotop,通过实际案例演示如何快速定位I/O瓶颈。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. iostat:磁盘I/O统计的基石工具
2.1 基础使用与关键指标
iostat是sysstat工具包中的核心组件,提供CPU利用率和设备I/O统计信息。典型用法:
bash复制iostat -x 1 5 # 每1秒刷新,共显示5次,-x显示扩展统计
关键指标解读:
- %util:设备利用率百分比,超过80%表明I/O饱和
- await:平均I/O等待时间(ms),正常应小于10ms
- svctm:平均服务时间(ms),现代SSD通常低于2ms
- r/s+w/s:每秒读写请求数,反映I/O压力
2.2 高级用法与实战案例
排查MySQL慢查询时的典型场景:
bash复制iostat -xmt 2 # 每2秒刷新,显示时间戳(-t),MB/s单位(-m)
当观察到以下情况时需警惕:
- %util持续>90%且await>20ms,表明磁盘成瓶颈
- 高svctm值可能预示磁盘硬件故障
- 读/写吞吐量(rMB/s+wMB/s)接近磁盘标称速率
经验:在RAID阵列上,%util可能显示偏低(因多磁盘并行),此时更应关注await值
3. dstat:全能型系统监控瑞士军刀
3.1 多维度监控能力
dstat的优势在于整合CPU、内存、网络、磁盘等多维度数据:
bash复制dstat -cdngy 1 # 监控CPU/磁盘/网络/内存/系统状态
常用组合:
dstat -tcdng --disk-util:带时间戳的全方位监控dstat --top-io:显示I/O最高的进程
3.2 自定义输出与日志记录
生产环境推荐将监控数据记录到文件:
bash复制dstat -tcmnd --output /var/log/dstat.csv 5
