Linux怎么查看具体的磁盘IO操作平均等待时间值

秋墨小哥_4122

秋墨小哥_4122

2026-09-04

685人浏览

原创

await是iostat -x输出中第11列的平均i/o等待时间(毫秒),含排队与处理耗时;hdd>10ms、sata ssd>2ms、nvme>0.5ms需警惕,持续>50ms表明严重延迟,须结合r_await/w_await、%util及/proc/diskstats等深入定位瓶颈根源。

linux怎么查看具体的磁盘io操作平均等待时间值

iostat -x 输出里的 await 字段就是你要的平均等待时间

直接运行 iostat -xmt 2,每行设备数据里第 11 列的 await 就是该设备所有 I/O 请求从发出到完成的平均耗时(单位毫秒),它包含排队时间和设备处理时间。这不是估算值,是内核 block layer 实时统计的加权平均。

  • await > 10ms(HDD)、> 2ms(SATA SSD)、> 0.5ms(NVMe)就该警惕;持续 > 50ms 基本确认存在严重延迟
  • 别只看总 await,必须同时盯住 r_await 和 w_await:如果 r_await 高但 w_await 正常,问题大概率出在读路径(比如数据库全表扫描、日志轮转)
  • await 高但 %util 很低(比如

为什么 top 或 vmstat 里的 %wa 不能代替 await

%wa(或 %iowait)只是 CPU 在空闲时等待 I/O 完成的时间占比,它不告诉你“等了多久”,只告诉你“CPU 有段时间在等”。一个进程反复发小请求、每次等 1ms,%wa 可能很低;另一个进程发一次大请求、卡住 500ms,%wa 却可能爆到 80%——但两者对用户体验的影响完全不同。

  • 用 top 看到 %wa 高,只是触发排查的起点,不是结论
  • vmstat 1 中的 b(阻塞进程数)持续 > 0,且与 wa 同步升高,才算是较可靠的 I/O 阻塞信号
  • 单靠 %wa 无法区分是磁盘慢、文件系统锁、还是应用层频繁 fsync 导致的延迟毛刺

await 高但找不到高 IO 进程?去 /proc/diskstats 和调度器查

当 iostat -x 显示 await 持续偏高,但 iotop -oPa 和 pidstat -d 1 都看不到明显罪魁,说明 I/O 堵在了进程之外的路径:比如脏页回写、mmap 写入、或块设备队列本身。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 执行 cat /proc/diskstats,对比同一设备前后 5 秒的第 9 列(aveq,加权队列长度)是否显著增长——真堆积,这里会暴露
  • 检查调度器:cat /sys/block/nvme0n1/queue/scheduler,NVMe 设备必须是 none,若显示 mq-deadline 或 bfq,说明被错误启用,会人为引入串行化延迟
  • 运行 dmesg | grep -i "nvme\|ata\|error\|timeout",PCIe 链路重试、ACPI power state 异常这类底层错误,iostat 完全不体现,但会导致 await 毛刺式飙升

别信 iotop 的 IO% 数值,它和 await 不是一回事

iotop 显示的 IO% 是进程级 I/O 时间占总调度时间的比例,和 await 完全不同源。一个进程 IO% 95% 但 await 只有 1ms,说明它发请求快、设备响应也快;反过来 IO% 仅 5% 但 await 达 200ms,意味着它虽然不常发请求,但每次都在深水区卡住。

  • 验证进程状态:ps -o pid,comm,state -p <pid></pid>,看到 D(不可中断睡眠)才说明真在等 I/O
  • 用 strace -p <pid> -e trace=read,write -T</pid> 抓单次系统调用耗时,如果 <read></read> 或 <write></write> 后面显示 (毫秒级),就和 await 对得上;如果都是微秒级,那高 await 就不在这个进程身上
  • 数据库类进程优先查慢查询日志和 EXPLAIN,而不是盯着 await 换硬盘——90% 的 case 是 SQL 问题引发的间接 I/O 压力

真正容易被忽略的是:await 高但 %util 低时,换更快的盘毫无意义;问题往往在文件系统锁或内核 block layer 队列,得往 /proc/vmstat 和调度器配置里挖。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4150

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3513

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2733

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6670

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6322

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3653

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3145

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3379

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习