blktrace用于跟踪块设备的IO请求,而btt则是用于分析块设备IO请求的工具。在本文中,我将重点探讨blktrace和btt的高级用法,帮助您更深入地理解和应用这两个工具。 1. blktrace的高级用法 blktrace可以用于跟踪块设备的IO请求,它的基本用法包括启动跟踪、停止跟踪以及生成跟踪数据文件。但除了基本用法之外,blktrace还有...
1.btt官方网址:http://git.kernel.dk/cgit/blktrace/tree/btt/doc/btt.tex 在(centos7.4)/usr/share/doc/blktrace-1.0.5/README中32行提到http://git.kernel.dk/ 本文中对btt的分析很多参考自btt.tex 2.http或者git上的blktrace最新版本 http://brick.kernel.dk/snaps/ ddif=/dev/zero of=/dev/sdb...
注意,blkparse仅仅是将blktrace输出的信息转化成人可以阅读和理解的输出,但是,信息太多,太杂,人完全没法得到关键信息。 这时候btt就横空出世了,这个工具可以将blktrace采集回来的数据,进行分析,得到对人更有用的信息。事实上,btt也是我们的终点。 注: 在以上数据中,有一些记录的event类型是”m”,那是IO Scheduler的...
btt -i sdb.blktrace.bin -l sdb.d2c_latencybtt -i sdb.blktrace.bin -q sdb.q2c_latency IOPS 和 MBPS 从btt出发,我们分析出来采样时间内,整个块设备的IOPS: 获取方法如下: blkparse -i sdb -d sdb.blktrace.bin btt -i sdb.blktrace.bin -q sdb.q2c_latency 注意,这一步之后,我们会得到如下...
- btt 如何实现离散的 IO 事件的关联; - 对存储系统的 IO trace 实现的思考; blktrace的基本使用 blktrace -d /dev/sda -o - | blkparse -i - 这种用法用在查看每一个 IO 的中间事件以及 IO 的 LBA +offset信息。 其中要特别说明的是 IO 的中间事件状态用一个字母来表示,它的意义如下: ...
btt这个工具就是一个分析输出得到更高层信息的tool,他不是我们本文的重点,我们不提他。 回到开篇的问题,如何知道which磁盘扇区被读写的次数最多?有了blkparse的输出,我们完全可以做到这个统计:淘宝的Coly大神的shell脚本已经帮我们作了这个事情。 root@manu-hacks:~/code/shell/blkstrace_calculator# cat cal.sh...
btt -i sdb.blktrace.bin conv=fdatasync conv=fsync conv=sync oflag=dsyn oflag=syn oflag=direct dd默认是buffer io, 页⾯是pdflush刷的。⾃⼰加上去这些参数看看分析结果,会让你⼤吃⼀惊的。btt结果如下:btt -i sdb.blktrace.bin | grep -A 100 "All Devices"=== All Devices === ALL ...
blktrace包安装后有blktrace、blkparse、btt、blkiomon这4个命令,其中blktrace负责采集I/O事件数据,blkparse负责将每一个I/O事件数据解析为纯文本方便阅读,btt、blkiomon负责统计分析。 实时查看# $ sudo blktrace -d /dev/sda -o - | blkparse -i - ...
blktrace结合btt可以统计一个IO是在调度队列停留的时间长,还是在硬件上消耗的时间长,利用这个工具可以协助分析和优化问题。blktrace的原理一个I/O请求的处理过程,可以梳理为这样一张简单的图:一个I/O请求进入block layer之后,可能会经历下面的过程:I 利用BLKTRACE分析IO性能...
执行btt对sdb.blktrace.bin进行分析: $ btt -i sdb.blktrace.bin 下面是一个btt实例: 我们看到93.7461%的时间消耗在D2C,也就是硬件层,这是正常的,我们说过D2C是衡量硬件性能的指标,这里单个IO平均0.129201毫秒,已经是相当快了,单个IO最慢14.246176 毫秒,不算坏。Q2G和G2I都很小,完全正常。I2D稍微有点大,...