一名默默挣扎在研发前线的女程序猿
分类: LINUX
2013-06-17 15:39:10
blktrace是一个针对Linux内核块设备I/O层的跟踪工具。通过使用这个工具,使用者可以获取I/O请求队列的各种详细的情况,
包括:进行读写的进程名称、进程号、执行时间、读写的物理块号、块大小等。
具体参考博文《blktrace工具的安装与使用》
blkparse用于将块设备的事件流解析成有格式的输出。
具体参考博文《blktrace工具的安装与使用》
btrecord用于记录由blktrace产生的I/O负载。其将会解析由blktrace产生的每一个文件,提取出将会用于I/O回放的I/O描述信息。
btreplay用于重放I/O。其基于btrecord产生的数据文件。
Step 1. 运行blktrace来收集trace信息。
收集信息时需要指定设备,值得注意的是,仅需要关注QUEUE请求相关的trace。即,如果为了节约系统资源,仅需要指定
blktrace的-a queue命令选项。
Step 2. 在运行blktrace时,开始运行相关的任务。
Step 3. 当任务运行完毕时,停止运行blktrace
Step 4. 使用btrecord工具摘取由blktrace保存的IO信息。这将会解析由blktrace创建的所有trace文件,并且产生下一个处理
流程需要的IO描述信息。
Step 5. 当btrecord成功创建数据文件之后,可以运行btreplay工具来重放之前工作任务的相同的IO。
Step 1. blktrace -d /dev/asd0 -o
asd0 | blkparse -i -
运行的任务:
Step 2. btrecord -d ./ asd0 -v
Step 3. btreplay -d ./ asd0 -W -v