Archive

Posts Tagged ‘blktrace’

blktrace未公开选项网络保存截取数据

February 28th, 2012 No comments

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: blktrace未公开选项网络保存截取数据

我们透过blktrace来观察io行为的时候,第一件事情需要选择目标设备,以便分析该设备的io行为。具体使用可以参考我之前写的几篇:这里 这里 这里

blktrace分为内核部分和应用部分,应用部分收到我们要捕捉的设备名单,传给内核。内核分布在block层的各个tracepoint就会开始工作,把相关的数据透过relayfs传递到blktrace的应用部分,应用部分把这些数据记到磁盘,以便后续分析。架构参见下图:

从man blktrace中可以看到:

blktrace stores the extracted data into files stored in the local directory. The format of the file names is (by default) device.blktrace.cpu, where device is the base device name (e.g, if we are tracing /dev/sda, the base device name would be sda); and cpu identifies a CPU for the event stream

这时候问题就来了,如果我的机器只有一个设备,那么blktrace存数据文件这个动作就会影响到我们正常的IO行为。
Read more…

Post Footer automatically generated by wp-posturl plugin for wordpress.

Categories: 工具介绍 Tags:

IO模式调查利器blkiomon介绍

November 9th, 2011 No comments

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: IO模式调查利器blkiomon介绍

blkiomon 是blktrace工具包带的一个方便用户了解IO情况的工具, 由于blktrace太专业,需要了解的IO协议栈的东西太多,blkiomon给大多数的用户提供了一种易于使用的方式.
blktrace的使用参考这里: http://blog.yufeng.info/archives/tag/blktrace
他可以告诉你IO的大小,完成花费时间,吞吐量, 还可以统计出这次关键参数的分布.
具体见man blkiomon

blkiomon is a block device I/O monitor. It periodically generates per-device request size and request latency statistics from blktrace data. It
provides histograms as well as data that can be used to calculate min, max, average and variance. For this purpose, it consumes D and C traces
read from stdin.

我们来演示下:
Read more…

Post Footer automatically generated by wp-posturl plugin for wordpress.

Categories: Linux, 工具介绍, 调优 Tags: ,

Linux下Fio和Blktrace模拟块设备的访问模式

March 12th, 2011 15 comments

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: Linux下Fio和Blktrace模拟块设备的访问模式

我们在做块设备调优的时候, 我们关心的是块设备是如何被访问的,也就是访问模式(比如说每次从什么地方读,每次读多少块,热点在哪里等),至于每次读写的什么数据我们并不关心. 这些模式当然可以自己去构造,但是如果能把真实应用的访问模式记录下来,并且在调优的时候能重放,我们就可以一遍又一遍的调试直到达到最佳的性能.

这个事情听起来貌似很麻烦,对吧? 幸运的是fio配合blktrace可以作这样的事情. 流程是blktrace负责录制真实应用对设备的访问模式, fio负责读入这些模式, 同时重放模拟对设备的访问.

背景资料:
blktrace使用可以参看这里
fio使用可以参看这里

在做演示前需要强调的是: 对设备的读写是模拟它的模式, 所以会破坏原来的数据,请谨慎, 我也是用虚拟的设备作演示的:

我们要演示的设备是 /dev/ram0, 设备大小128M:
Read more…

Post Footer automatically generated by wp-posturl plugin for wordpress.

Categories: Linux, 工具介绍 Tags: , , ,

blktrace 深度了解linux系统的IO运作

February 22nd, 2011 23 comments

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: blktrace 深度了解linux系统的IO运作

我们在Linux上总是要保存数据的,数据要么保存在文件系统里(如ext3),要么就在裸设备里面。我们在使用这些数据的时候都是通过文件这个抽象来访问的,操作系统会把我们需要的数据给我们,我们通常无需和块设备打交道。

从下图我们可以很清楚的看到:

我们会发现IO是个层次很深的子系统,有很复杂的数据流动线路。

至于操作系统如何去存储和获取这些数据对我们完全是黑盒子的,这通常不是问题。但是如果我们的IO很密集,我们就需要搞清楚IO具体是如何运作的,免的滥用IO和导致设计问题。

这时候你就需要blktrace这样的工具。

blktrace is a block layer IO tracing mechanism which provides detailed information about request queue operations up to user space.

它的作者Jens Axboe, 是内核IO模块的维护者,目前就职于FusionIO, 是个很nice的家伙,同时他还是著名IO评测工具fio的作者。

相关的文档:
users guide: http://pdfedit.petricek.net/bt/file_download.php?file_id=17&type=bug

HP的人写的指南: http://www.gelato.org/pdf/apr2006/gelato_ICE06apr_blktrace_brunelle_hp.pdf

CU上的小伙子写的: http://linux.chinaunix.net/bbs/viewthread.php?tid=1115851&extra=&ordertype=2

目前blktrace在大部分的Linux发行版都支持的,我们可以轻松的安装使用:
Read more…

Post Footer automatically generated by wp-posturl plugin for wordpress.