iostat 系统性能监控
概述
掌握Linux磁盘I/O性能分析的核心工具
基础概念 核心指标 性能分析
iostat 简介
iostat 是Linux系统中用于监控磁盘I/O性能的核心工具,属于sysstat工具包的一部分。它能够实时显示CPU使用率和磁盘I/O统计信息,是系统管理员进行性能调优的必备工具。
iostat [选项] [间隔时间] [次数]
常用参数组合
iostat -x 1
每秒显示扩展磁盘统计信息
最常用的实时监控命令
iostat -d 2 5
每2秒显示磁盘统计,共5次
适合短期性能观察
iostat -c
仅显示CPU使用率
专注CPU性能分析
iostat -h
以人类可读格式显示
数值带单位显示
学习目标
理解iostat输出的每个指标含义
掌握磁盘I/O性能瓶颈识别方法
学会设置合适的监控阈值
熟悉常见性能问题的诊断流程
建立系统性的运维监控体系
CPU指标详解
%user 正常: <30%
用户态CPU使用率
应用程序消耗的CPU时间百分比
%nice 正常: <5%
低优先级进程CPU使用率
nice值调整的进程CPU占用
%system 注意: >20%
内核态CPU使用率
系统调用和内核操作消耗
%iowait 警告: >10%
等待I/O操作的CPU空闲时间
磁盘瓶颈的重要指示器
%steal 注意: >5%
虚拟机被其他虚拟机抢占的时间
虚拟化环境特有指标
%idle 健康: >70%
CPU空闲时间百分比
系统负载的反向指标
磁盘I/O指标详解
rrqm/s 优化指标
每秒合并的读请求数
值越高说明读操作合并效果越好
wrqm/s 优化指标
每秒合并的写请求数
写操作合并效率指标
r/s 监控: >100
每秒读操作次数
磁盘读取频率,高值需关注
w/s 监控: >100
每秒写操作次数
磁盘写入频率,影响性能
rkB/s 监控带宽
每秒读取的千字节数
读取吞吐量指标
wkB/s 监控带宽
每秒写入的千字节数
写入吞吐量指标
关键延迟指标
await 关键: >10ms
平均I/O请求处理时间
包含队列等待+服务时间
svctm 已废弃
平均服务时间(不准确)
新版本中已移除此指标
%util 警告: >85%
磁盘利用率
磁盘繁忙程度的核心指标
性能瓶颈诊断流程
性能阈值参考表
| 指标 | 优秀 | 良好 | 需关注 | 严重问题 |
|---|---|---|---|---|
| %iowait | < 1% | 1-5% | 5-10% | > 10% |
| await (ms) | < 5 | 5-10 | 10-20 | > 20 |
| %util | < 60% | 60-80% | 80-90% | > 90% |
| IOPS | < 设备最大值的50% | 50-70% | 70-85% | > 85% |
高级指标解析
aqu-sz(队列深度)
平均请求队列大小
• < 1.0: 磁盘负载轻 • 1.0-4.0: 正常范围 • > 4.0: 可能存在瓶颈
%rrqm / %wrqm
请求合并率
• > 10%: 合并效果好 • < 5%: 随机I/O较多 • 0%: 纯随机访问模式
rareq-sz / wareq-sz
平均请求大小(KB)
• > 64KB: 顺序I/O为主 • 4-64KB: 混合模式 • < 4KB: 随机I/O为主