Blktrace 介绍及使用

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 输出

输出内容分析

见:http://linuxperf.com/?p=161