blktrace工具是什么?工作原理呢?如何定位硬盘解决时延高问题?

2023-03-1514:28:49办公软件与工具应用Comments1,395 views字数 1398阅读模式

Blktrace简介文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

blktrace是一个针对Linux内核中块设备IO层的跟踪工具,用来收集磁盘IO信息中当IO进行到块设备层(block)时的详细信息(如IO请求提交、入队、合并、完成等信息),是由Linux内核块设备层的维护者开发的,目前已经集成到内核2.6.17及其后内核版本中。blktrace可以获取IO请求队列的各种详细的情况,包括进行读写的进程名称、进程号、执行时间、读写的物理块号、块大小等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

blktrace工作原理文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

(1)blktrace测试时会分配物理机上逻辑CPU数量个线程,并且每一个线程绑定一个逻辑CPU来收集数据。 (2)blktrace在debugfs挂载的路径(默认/sys/kernel/debug)下每个线程产生一个文件,然后调用ioctl函数,通过系统调用交由内核处理,由内核经由debugfs文件系统往文件描述符写入数据。 (3)blktrace需要结合blkparse使用,由blkparse来解析blktrace产生的特定格式的二进制数据。 (4)blkparse仅打开blktrace产生的文件,从文件里面取数据进行解析展示。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

下面先描述怎么使用工具判断问题的,最后再罗列整理下这个工具的其它用途,平时也没用过,也不大熟悉它的其它功能和各个参数,就是这次学到了这种定位判断方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

用这个工具可以很好的定位硬盘时延高的相关问题,比如本次涉及到这个工具的使用是因为遇到了现场nvme盘带宽和利用率异常的问题,如下图。应客户要求服务器厂商参与问题定位文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

blktrace工具是什么?工作原理呢?如何定位硬盘解决时延高问题?
1.png

接下来的blktrace,blkparse,bbt都属于blktrace包里的工具,首先直接获取一个存储设备或者文件系统的I/O数据,没设置时间的话需要手动ctrl C停止文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

blktrace –d /dev/xxxxx文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

然后当前执行目录下就有很多文件,如下图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

blktrace工具是什么?工作原理呢?如何定位硬盘解决时延高问题?
2.png

我们把它合并统计一下,用下面这个命令文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

blkparse -i nvme0n1 -d nvme0n1.blktrace.bin文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

然后用bbt工具转化分析一下文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

btt -i nvme0n1.blktrace.bin > btt.log文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

然后直接查看这个文件,就有如下结果了文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

blktrace工具是什么?工作原理呢?如何定位硬盘解决时延高问题?
3.png

在看这个图之前需要了解一些原理,如下文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

数据中相关字母的含义,每个字母都是一个阶段文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

Q – 即将生成IO请求文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

|文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

G – IO请求生成文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

|文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

I – IO请求进入IO Scheduler队列文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

|文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

D – IO请求进入driver文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

|文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

C – IO请求执行完毕文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

根据以上步骤对应的时间戳就可以计算出I/O请求在每个阶段所消耗的时间:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

Q2G – 生成IO请求所消耗的时间,包括remap和split的时间;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

G2I – IO请求进入IO Scheduler所消耗的时间,包括merge的时间;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

I2D – IO请求在IO Scheduler中等待的时间;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

D2C – IO请求在driver和硬件上所消耗的时间;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

Q2C – 整个IO请求所消耗的时间(Q2I + I2D + D2C = Q2C),相当于iostat的await。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

如果I/O性能慢的话,以上指标有助于进一步定位缓慢发生的地方:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

D2C可以作为硬件性能的指标;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

I2D可以作为IO Scheduler性能的指标文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

那么我这个数据中D2C占的比较多是比较合理的,设备层确实会占据较多时间,但是客户现场的结果如下,明显是应用层面的问题,最终客户确实在集群策略方面找到了问题原因文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

blktrace工具是什么?工作原理呢?如何定位硬盘解决时延高问题?
4.png

如下图就是IO 调度器的问题,所以I2D耗时比较大文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html

blktrace工具是什么?工作原理呢?如何定位硬盘解决时延高问题?
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/31307.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/office/31307.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定