blktrace 介绍
blktrace 是针对linux内核中块设备I/O层的跟踪工具,是由Linux内核块设备层维护者开发的。下图是一个I/O的流通图:
可见,使用这个工具,我们可以获取I/O请求队列的各种详细情况,包括进行读写的进程名称,进程号,执行时间,读写的物理块号,读写的块大小等等。
2.6.23后的内核版本都会集成bltrace,如果没有,则安装blktrace后采用类似与ftrace相同的方式挂载debugfs即可!
bltrace 使用
blktrace -d /dev/sda -o -
-d 表示device
-o 表示输出
- 表示输出到标准输出(直接显示在屏幕)
产生结果为sda.blktrace.xx ,xx表示cpu 的id,里面的内容需要用blkparse来看
blkparse -i trace -o trace.txt
-i 输入(trace.blktrace.xx…)
-o 输出