快捷菜单
常用功能一站直达
更多功能请点顶栏「快捷菜单」
常用命令:
1# 运维最常用:实时磁盘I/O详情
2iostat -y -x -m 1
3
4# 只看CPU实时
5iostat -c 1
6
7# 只看磁盘,MB单位,实时
8iostat -d -m 1
9
10
11## 效果
12avg-cpu: %user %nice %system %iowait %steal %idle
13 1.51 0.00 1.26 0.00 0.00 97.24
14
15Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
16vda 0.00 23.00 0.00 6.00 0.00 0.12 40.00 0.00 0.50 0.00 0.50 0.83 0.50
17scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00说明:
-x显示扩展 I/O 详情(关键)
-y跳过首次累计值(自开机以来)
字段含义:
%iowait:CPU 等待 I/O 完成的时间占比(I/O 瓶颈核心指标)–avg-cpuawait:读写平均等待时间(部分版本显示) –硬盘%util:设备繁忙时间占比(接近 100% 表示 I/O 饱和)–硬盘速记:🍊
%iowait> 10%:CPU 频繁等 I/O,存在 I/O 瓶颈(CPU 经常在等磁盘)(I/O 瓶颈核心指标)await持续偏高:I/O 响应慢,可能是队列长或硬件慢%util> 80%:磁盘接近饱和(磁盘忙不过来)
iostat(Input/Output Statistics)是 Linux 系统中监控磁盘 I/O 性能与 CPU 使用率的核心命令,用于定位存储瓶颈、分析 I/O 负载。
iostat 属于 sysstat 工具包,安装命令:
1# Debian/Ubuntu
2sudo apt install sysstat
3
4# RHEL/CentOS/Rocky
5sudo dnf install sysstat1iostat [选项] [时间间隔] [次数]1 表示每秒刷新一次| 选项 | 功能 | 典型用法 |
|---|---|---|
-c | 仅显示 CPU 统计 | iostat -c 1 |
-d | 仅显示 磁盘 I/O 统计 | iostat -d 1 |
-x | 显示扩展 I/O 详情(关键) | iostat -x 1 |
-k / -m | 以 KB/MB 为单位显示 | iostat -m 1 |
-t | 每条报告前显示时间戳 | iostat -t 1 |
-y | 跳过首次累计值(自开机以来) | iostat -y -x 1 |
-p | 显示磁盘分区统计 | iostat -p sda 1 |
avg-cpu)1avg-cpu: %user %nice %system %iowait %steal %idle
2 0.25 0.00 0.50 0.00 0.00 99.25%user:用户态 CPU 占比%system:内核态 CPU 占比%iowait:CPU 等待 I/O 完成的时间占比(I/O 瓶颈核心指标)%idle:空闲 CPU 占比Device,-x 扩展)1Device r/s w/s rMB/s wMB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
2sda 0.00 2.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 4.00 0.00 0.00r/s / w/s:每秒读/写 I/O 请求数rMB/s / wMB/s:每秒读/写吞吐量r_await / w_await:读/写请求平均等待时间(ms,含排队)aqu-sz:平均请求队列长度%util:设备繁忙时间占比(接近 100% 表示 I/O 饱和)每秒刷新、持续看扩展 I/O(最常用)
1iostat -x 1只看磁盘、忽略首次累计值
1iostat -y -d -x 1监控指定磁盘(如 sdb)
1iostat -x 1 sdb仅看 CPU 状态
1iostat -c 1输出 5 次、保存到日志
1iostat -x 1 5 > iostat.log%iowait > 10%:CPU 频繁等 I/O,存在 I/O 瓶颈%util > 80%:磁盘接近饱和await 持续偏高:I/O 响应慢,可能是队列长或硬件慢这里给你整理最清晰、运维最常用的 iostat 字段解释,按默认输出 / 扩展输出(-x)分开,直接对照看就行。
执行 iostat 会出现两段:CPU 统计 + 磁盘统计
1avg-cpu: %user %nice %system %iowait %steal %idle
2 1.25 0.00 0.89 0.12 0.00 97.74%user:用户进程 CPU 占比%nice:低优先级进程 CPU 占比%system:内核系统调用 CPU 占比%iowait:CPU 等待磁盘 I/O 的时间占比%steal:虚拟机被宿主机抢占的 CPU 时间%idle:空闲 CPU 占比1Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
2sda 0.30 0.00 10.20 1234567 89101112Device:磁盘/分区名(sda、vda、nvme0n1 等)tps:每秒向磁盘发起的 I/O 请求数kB_read/s:每秒读取数据量(KB)kB_wrtn/s:每秒写入数据量(KB)kB_read:总读取量(KB)kB_wrtn:总写入量(KB)执行 iostat -x 才会显示,排查 I/O 瓶颈必看
1Device r/s w/s rMB/s wMB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
2sda 0.00 2.10 0.00 0.01 0.00 0.00 0.00 0.00 0.50 0.30 0.00 0.00 5.12 0.10 0.02r/s:每秒读 I/O 次数w/s:每秒写 I/O 次数rMB/s:每秒读 MBwMB/s:每秒写 MBrrqm/s:每秒合并的读请求wrqm/s:每秒合并的写请求%rrqm:读请求合并比例%wrqm:写请求合并比例r_await:读请求平均等待时间(ms)w_await:写请求平均等待时间(ms)await:读写平均等待时间(部分版本显示)aqu-sz:平均 I/O 请求队列长度rareq-sz:平均读请求大小(KB)wareq-sz:平均写请求大小(KB)svctm:平均每次 I/O 服务时间(ms)%util:磁盘繁忙百分比%util 持续 >80% → 磁盘忙不过来await 明显变大 → I/O 响应慢%iowait 高 → CPU 经常在等磁盘需要我把这些做成一行式速记卡片,方便你存到笔记里吗?
1# 基础磁盘+CPU统计
2iostat
3
4# 每秒刷新1次,持续输出
5iostat 1
6
7# 每秒1次,共输出10次
8iostat 1 101# 仅磁盘统计
2iostat -d
3
4# 每秒刷新
5iostat -d 1
6
7# 以 MB 为单位
8iostat -d -m 11# 仅CPU统计
2iostat -c
3
4# 实时刷新
5iostat -c 11# 扩展I/O详情(await、util、队列等)
2iostat -x
3
4# 实时扩展监控(最常用)
5iostat -x 1
6
7# 跳过开机累计值,只看实时数据
8iostat -y -x 11# 只看 sda
2iostat -x 1 sda
3
4# 看 sda + sdb
5iostat -x 1 sda sdb
6
7# 显示分区统计
8iostat -p sda 11# 运维最常用:实时磁盘I/O详情
2iostat -y -x -m 1
3
4# 只看CPU实时
5iostat -c 1
6
7# 只看磁盘,MB单位,实时
8iostat -d -m 1%util:磁盘繁忙度,接近100% 饱和await:I/O等待时间,越大越慢%iowait:CPU等I/O时间,高则I/O瓶颈日历 · 精选 · 友链 · 更多
如果内容对你有帮助,欢迎请我喝杯咖啡 ☕



One的公众号
爱折腾博客的小白