关于介绍,可以参考http://blog.yufeng.info/archives/1112
这里主要介绍下自己的操作步骤以及在操作过程中遇到的问题,以对新学者作个借鉴。
假定,一切操作均在root权限下。
1.在实施之前,首先要确保debugfs被挂载到/sys/kernel/debug
默认挂载到的目录是/dev/kernel/debug,也可以设置自己的目录,但在blktrace命令中要通过-r参数指定新选择的路径。一般情况下,选择默认即可。
检查方法:
$ grep debug /proc/mounts
如果debugfs已挂载,应该看到这样的输出:
none /sys/kernel/debug debugfs rw 0 0
否则的话,要自己挂载:
$mount -t debugfs none /sys/kernel/debug
这是因为,blktrace要用到debugfs的trace输出,从它的输出中进行分析,必须依赖于它。
2.在终端#1,启动blktrace,准备记录设备的访问模式
$blktrace /dev/sdb
在终端#2,运行应用程序。这里,简单用dd做测试。
$dd if=/dev/zero of=/dev/sdb bs=4k count=100 oflag=direct
3.回到终端#1,按CTRL+C终止blktrace的运行,由ls命令可看到,在当前目录下出现了新的文件,它的名字与设备名相关,文件个数与CPU个数相同。
对我来说,只有一个CPU,出现的文件名为sdb.blktrace.0
转化成二进制文件,作为fio的读写日志,即Fio的读写的数据来源。
$blkparse sdb -d sdb.bin > /dev/null
操作完成后,在当前目录下会生成sdb.bin二进制文件。<

本文介绍了如何在Linux环境下结合fio和blktrace工具模拟块设备访问,包括确保debugfs挂载、启动blktrace记录设备访问、使用dd测试、转换 blktrace 输出为fio日志,以及通过fio重放日志的过程。在操作中需要注意fio版本的选择和libaio库的安装。
最低0.47元/天 解锁文章
3133

被折叠的 条评论
为什么被折叠?



