0

0

sar 显示 %iowait 非常高但 iostat 看不出哪个盘特别忙的排查技巧

冷炫風刃

冷炫風刃

发布时间:2026-01-20 06:13:09

|

426人浏览过

|

来源于php中文网

原创

iowait高但iostat无异常说明I/O等待源于非磁盘环节,需排查容器文件系统、block层延迟、tmpfs/overlayfs等伪设备及内核路径阻塞。

sar 显示 %iowait 非常高但 iostat 看不出哪个盘特别忙的排查技巧

sar 显示 %iowait 持续很高(比如 >30%),但 iostat -x 1 却看不出某块磁盘的 %util、await 或 avgqu-sz 明显异常——这说明 I/O 等待不是来自“典型慢盘”,而是被系统其他环节“吃掉”了,或者 I/O 行为本身很隐蔽。这种情况常见于容器环境、文件系统层开销大、短时突发 IO、或内核路径阻塞等场景。

先确认 iowait 是否真由磁盘 I/O 引起

iowait 高 ≠ 磁盘忙。它只是 CPU 在空闲时等待 I/O 完成的时间占比。所以要排除干扰:

  • 检查 CPU 是否真的有 idle 时间:如果 %idle 极低(如
  • vmstat 1 看 b(blocked 进程数)和 r(runnable 进程数):若 b 长期 >0,说明确有进程卡在不可中断睡眠(D 状态),这才是真 I/O 阻塞信号;
  • 运行 pidstat -u 1pidstat -d 1 对照看:如果 %iowait 高,但各进程的 IO KB/s 和 %io 都很低,大概率是 block 层或驱动层延迟,而非应用写得多。

盯住 block 层和 bio 路径,而不是只看设备层

iostat 只统计到 request queue 层面,对更上游的 bio 分发、合并、调度不敏感。以下命令能挖得更深:

MOKI
MOKI

MOKI是美图推出的一款AI短片创作工具,旨在通过AI技术自动生成分镜图并转为视频素材。

下载
  • cat /proc/diskstats:对比各设备的 “# of IOs merged”、“# of requests”、“# of sectors read/written”,看是否大量 IO 被 merge 掉,导致 iostat 的 r/s/w/s 失真;
  • blktrace -d /dev/sda -o - | blkparse -i -(需 root):捕获真实下发的 bio 和 request 事件。重点关注 “Q”(queue)、“G”(getrequest)、“C”(complete)之间的时间差。若 Q→G 延迟长,说明 block 层调度/队列深度不足;若 G→C 很长,才指向设备或驱动问题;
  • echo 1 > /sys/block/sda/stat(谨慎)+ 再读一次 /sys/block/sda/stat:可临时触发一次 stat 刷新,辅助判断是否因统计缓存导致 iostat 滞后。

排查 overlayfs、tmpfs、loop 设备等“非物理盘”路径

尤其在 K8s 或 Docker 环境中,高 iowait 常来自文件系统层,而非底层磁盘:

  • 运行 findmnt -t overlay,overlayfs,xfs,ext4,tmpfs,确认是否有 overlayfs 下层(lowerdir/uppperdir)挂载在高 IO 目录;
  • 查容器数据目录是否用了 emptyDirhostPath 绑定到 tmpfs(内存盘):tmpfs 写满会触发 swap 或 OOM Killer,但 iostat 不显示任何磁盘活动;
  • lsof + grep -E "(REG|DEL)" 查高 IO 进程打开的文件路径,重点识别:/var/lib/kubelet/pods/.../volume-subpaths/.../dev/loop*/tmp/xxx ——这些都不是真实磁盘,但会消耗 CPU 在 copy-up、page cache 回写等操作上。

检查内核日志与 multipath/NVMe 特定行为

某些硬件/驱动问题不会让磁盘“忙”,却会让 IO 在途中卡住:

  • dmesg -T | grep -i "block\|nvme\|multipath\|fail\|timeout":查找 “blk_update_request: I/O error”、“nvme 0000:01:00.0: timeout”, 或 multipath “switching to [path]” 类日志;
  • NVMe 设备注意 cat /sys/class/nvme/nvme0/nvme0n1/queue_depth 和当前 cat /sys/class/nvme/nvme0/nvme0n1/io_poll_delay:队列过浅或轮询延迟设置不当,会导致大量 short-lived IO 在 kernel 中排队,但 iostat 看不出压力;
  • perf record -e block:block_rq_issue,block:block_rq_complete -a sleep 10 + perf script:看 issue → complete 的延迟分布,若大量请求耗时 >10ms 且未落到设备,就说明 block 层或 driver 是瓶颈。

相关专题

更多
scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

187

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

288

2023.10.25

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

465

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

13

2025.12.06

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

252

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

495

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

399

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

438

2024.04.08

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

0

2026.01.20

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
光速学会docker容器
光速学会docker容器

共33课时 | 1.9万人学习

Docker 17 中文开发手册
Docker 17 中文开发手册

共0课时 | 0人学习

极客学院Docker视频教程
极客学院Docker视频教程

共33课时 | 17.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号