(最近没有做多少Linux system level的事情了,看着草稿箱中还有以前写的这篇文章,凑合着发出来吧)
从http://www.coker.com.au/bonnie++/ 网页下载bonnie++-1.03e.tgz 文件,然后解压,对其进行配置、编译、安装的命令行操作如下:
代码如下 | 复制代码 |
[root@kvm-guest ~]# cd bonnie++-1.03e [root@kvm-guest bonnie++-1.03e]# ./configure [root@kvm-guest bonnie++-1.03e]# make [root@kvm-guest bonnie++-1.03e]# make install |
本次测试使用Bonnie++的命令如下:
bonnie++ -D -m kvm-guest -x 3 -u root
其中,-D 表示在批量IO测试时使用直接IO的方式(O_DIRECT),-m kvm-guest 表示Bonnie++得到的主机名为kvm-guest,-x 3 表示循环执行3遍测试,-u root 表示以root用户运行测试。
在执行完测试后,默认会在当前终端上输出测试结果。可以将其CSV格式的测试结果通过Bonnie++提供的bon_csv2html转化为更容易读的HTML文档,命令行操作如下:
代码如下 | 复制代码 |
[root@kvm-guest bonnie++-1.03e]# echo “native,4G,102817,88,58631,25,56712,4,108330,91,151383,7,299.0,1,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++” | perl bon_csv2html > native-bonnie-1.html |
Bonnie++是一个强大的测试硬盘和文件系统的工具,关于Bonnie++命令的用法,可以用man bonnie++ 命令获取帮助手册,关于Bonnie++工具的原理及测试方法的简介,可以参考其源代码中的 readme.html 文档。
对KVM虚拟化用bonnie++做磁盘I/O的性能测试,结果如下:
Bonnie++的测试结果对比,如图8-13所示,其中的s-w表示顺序写(sequential write)、s-r表示顺序读(sequential read),故s-w-per-char 就表示按字符的顺序写,s-w-block表示按块的顺序写,s-rewrite表示顺序重写,s-r-per-char按字符的顺序读,s-r-block表示按块的顺序读,Random Seeks表示随机改变文件读写指针偏移量(使用lseek()和random()函数)。