讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么查看磁盘读写延迟_Linux ioping测试磁盘延迟方法【技巧】

胖强同学_4474

胖强同学_4474

发布时间:2026-04-07 14:58:34

|

706人浏览过

|

来源于php中文网

原创

ioping、iostat、fio、IO调度器调优及存储栈分层诊断是Linux磁盘I/O延迟五大实测方法:ioping测裸设备毫秒级延迟;iostat -x看await定位排队与服务延迟;fio分析p99.9长尾延迟;调度器与队列深度匹配优化;blktrace+dmesg分层排查链路瓶颈。

linux怎么查看磁盘读写延迟_linux ioping测试磁盘延迟方法【技巧】

如果您在Linux系统中观察到应用响应变慢、数据库事务延迟增加或日志写入卡顿,且初步怀疑与磁盘I/O相关,则需重点评估磁盘读写延迟。ioping是专用于测量块设备I/O延迟的轻量级工具,可提供毫秒级响应时间统计。以下是针对磁盘读写延迟的多种实测方法:

一、使用ioping直接测试块设备延迟

ioping通过向指定块设备(如/dev/sda、/dev/nvme0n1)发送同步I/O请求并测量往返时间,绕过文件系统缓存,真实反映底层存储延迟。它默认以512字节随机写+读混合模式探测,适用于SSD与HDD。

1、安装ioping工具:执行yum install -y ioping(CentOS/RHEL)或apt install -y ioping(Ubuntu/Debian)。

2、对目标磁盘设备执行基础延迟测试:运行ioping -c 10 /dev/sda,其中-c 10表示发送10个探测请求。

3、查看输出中的min/avg/max/mdev字段:重点关注avg值(平均延迟),HDD通常为5–15ms,NVMe SSD应低于0.2ms,若avg持续高于10ms需进一步排查。

4、强制同步写入以排除缓存干扰:添加-C参数运行ioping -C -c 10 /dev/sda,确保每次请求均落盘。

二、结合iostat分析实时I/O等待延迟

iostat -x可输出每个I/O请求在队列中等待及设备服务的综合平均时间(await),该值包含排队延迟与实际服务延迟,是诊断高延迟问题的首要指标。

1、确保sysstat已安装:运行yum install -y sysstat或apt install -y sysstat。

2、执行持续监控命令:输入iostat -dx 1,每秒刷新一次扩展统计。

3、定位目标设备行:在输出中查找对应磁盘(如sda、nvme0n1),关注await列数值,若长期高于10ms(HDD)或1ms(SSD)即存在异常延迟。

4、交叉验证r_await与w_await:分别表示读请求与写请求的平均等待时间,若二者显著差异,说明读或写路径存在单独瓶颈。

三、利用fio模拟随机I/O并提取延迟分布

fio支持生成指定深度、大小、模式的I/O负载,并输出详细的延迟百分位数(如clat_ns中p99、p99.9),可识别长尾延迟现象,适用于定位偶发性高延迟事件。

1、创建fio配置文件io_delay.fio,内容如下:

filename=/dev/sda

direct=1

rw=randread

bs=4k

iodepth=1

runtime=60

time_based

group_reporting

name=randread_4k

2、保存后执行测试:fio io_delay.fio。

3、在输出结果中查找clat (completion latency) percentile部分,特别注意p99.9值是否突增至数十毫秒以上。

4、对比iodepth=1与iodepth=32下的p99.9变化:若高队列深度下延迟急剧上升,表明设备无法有效处理并发请求。

四、检查内核IO调度器与设备队列深度

IO调度器策略与硬件队列深度不匹配会导致请求堆积,表现为await升高但%util未达100%,尤其在多核高并发场景下明显。

1、查看当前调度器设置:运行cat /sys/block/sda/queue/scheduler,输出中被方括号包围的即为激活调度器。

2、对NVMe设备确认队列深度:cat /sys/block/nvme0n1/queue/nr_requests,正常值应≥128;若低于64,需调高。

3、临时切换调度器测试效果:执行echo none > /sys/block/sda/queue/scheduler(SSD适用)或echo mq-deadline > /sys/block/sda/queue/scheduler(HDD适用)。

4、重新运行ioping或iostat观察await值是否明显下降,若下降显著,说明原调度器引入额外排队开销。

五、检测存储栈路径中的异常延迟源

从应用到物理磁盘之间存在多层抽象(文件系统、块层、驱动、HBA、背板、阵列控制器),任一层异常均可能抬升延迟。需逐层剥离验证。

1、绕过文件系统直测裸设备:使用ioping或fio指向/dev/sda而非挂载点路径,排除ext4/xfs等文件系统锁或日志开销影响。

2、检查dmesg是否存在I/O错误:运行dmesg -T | grep -i "ata\|nvme\|error\|timeout",发现超时或重试记录即表明链路层故障。

3、验证HBA或RAID卡缓存状态:对LSI卡执行MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL,确认BBU健康且WriteBack模式启用;若BBU失效,控制器将强制降级为WriteThrough,大幅增加写延迟。

4、使用blktrace捕获原始I/O轨迹:运行blktrace -d /dev/sda -o - | blkparse -i -,分析trace中q(queue)、m(map)、d(issue)、c(complete)各阶段耗时,定位延迟发生在哪一环节。

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

热门AI工具

更多
Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

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

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

969

2023.10.18

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

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

2780

2023.10.25

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

5507

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2388

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

5507

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2388

2023.08.10

golang map内存释放
golang map内存释放

本专题整合了golang map内存相关教程,阅读专题下面的文章了解更多相关内容。

530

2025.09.05

golang map相关教程
golang map相关教程

本专题整合了golang map相关教程,阅读专题下面的文章了解更多详细内容。

323

2025.11.16

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

80

2026.10.10

热门下载

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

精品课程

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn