关于介绍,可以参考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命令可看到,在当前目录下出现了新的文件,它的名字与设备名