`
wsql
  • 浏览: 12099316 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Use bonnie++ to Test system IO speed[修正稿]

阅读更多

link:

http://www.eygle.com/unix/Use.Bonnie++.To.Test.IO.speed.htm

由于Bonnie存在一些众所周知的问题,比如>2G的文件支持.
Russell Coker (russell@coker.com.au) 开发了一套新的代码,用以支持>2G的文件等.
得到Tim Bray (tbray@textuality.com)的许可之后,Russell把他的软件命名为bonnie++,在网上发布,并开始流行起来.

目前的版本已经更新到了1.03a,你可以到以下地址下载:
http://www.coker.com.au/bonnie++/
你也可以点击这里下载,这个版本需要编译,如果你没有编译环境,可以点击这里下载我编译好的,适用于SUN Solaris环境(Solaris8测试通过)

Russell Coker的个人主页是:
http://www.coker.com.au/

Bonnie++ 与 bonnie的区别主要是:
http://www.coker.com.au/bonnie++/diff.html

我简单介绍一下Bonnie++的编译及使用:

1.编译

你需要把以上下载的源码编译以后才能使用,如果你没有编译环境,可以点击这里下载我编译好的,适用于SUN Solaris环境(Solaris8测试通过)

当然你需要安装make,及gcc等必要编译器.在编译过程中,如果遇到以下错误,可能是因为你没有设置正确的环境变量

$ ./configure
grep: illegal option -- q
Usage: grep -hblcnsviw pattern file . . .
grep: illegal option -- q
Usage: grep -hblcnsviw pattern file . . .
checking for g++... g++
checking for C++ compiler default output... a.out
checking whether the C++ compiler works... configure: error: cannot run C++ compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.

设置环境变量后继续编译,一般可以成功.

# export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
# ./configure
grep: illegal option -- q
Usage: grep -hblcnsviw pattern file . . .
grep: illegal option -- q
Usage: grep -hblcnsviw pattern file . . .
checking for g++... g++
checking for C++ compiler default output... a.out
checking whether the C++ compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking for a BSD-compatible install... /usr/bin/install -c
checking for an ANSI C-conforming const... yes
checking for egrep... egrep
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... no
checking for unistd.h... yes
checking for size_t... yes
checking vector.h usability... yes
checking vector.h presence... yes
checking for vector.h... yes
checking vector usability... yes
checking vector presence... yes
checking for vector... yes
checking algorithm usability... yes
checking algorithm presence... yes
checking for algorithm... yes
checking algo.h usability... yes
checking algo.h presence... yes
checking for algo.h... yes
checking algo usability... no
checking algo presence... no
checking for algo... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating bonnie.h
config.status: creating port.h
config.status: creating bonnie++.spec
config.status: creating bon_csv2html
config.status: creating bon_csv2txt
config.status: creating sun/pkginfo
config.status: creating conf.h
config.status: conf.h is unchanged

编译完成之后会生成bonnie++,可以用来测试了.

2.下面是一些测试结果

a.T3大文件读写测试

# ./bonnie++ -d /data1 -u root -s 4096 -m billing
Using uid:0, gid:1.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
billing          4G  9915  87 30319  56 11685  38  9999  99 47326  66 177.6   3
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16   639  19 +++++ +++  1258  22   679  16 +++++ +++  1197  27
billing,4G,9915,87,30319,56,11685,38,9999,99,47326,66,177.6,3,16,639,19,+++++,+++,1258,22,679,16,+++++,+++,1197,27


b. EMC CLARiiON CX500 禁用写Cache的测试数据

这个是在我禁用了写Cache以后的测试数据:

4块盘的Raid1+0测试:


# ./bonnie++ -d /eygle -u root -s 4096 -m jump   
Using uid:0, gid:1.
File size should be double RAM for good results, RAM is 4096M.
# ./bonnie++ -d /eygle -u root -s 8192 -m jump
Using uid:0, gid:1.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
jump             8G 12647  36 13414   8  7952  13 33636  97 146503  71 465.7   5
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16    86   1 +++++ +++   161   1    81   1 +++++ +++   163   1
jump,8G,12647,36,13414,8,7952,13,33636,97,146503,71,465.7,5,16,86,1,+++++,+++,161,1,81,1,+++++,+++,163,1

4块盘的Raid5,禁用写Cache后的速度:


# ./bonnie++ -d /eygle -u root -s 8192 -m jump
Using uid:0, gid:1.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
jump             8G 10956  30 10771   6  3388   5 34169  98 158861  75 431.1   5
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16    81   1 +++++ +++   160   1    82   1 +++++ +++   109   1
jump,8G,10956,30,10771,6,3388,5,34169,98,158861,75,431.1,5,16,81,1,+++++,+++,160,1,82,1,+++++,+++,109,1
                

对比这两个结果我们发现(单位K/sec):

字符写
Block写
字符读
Block读
Raid10
12,647
13,414
33,636
146,503
Raid5
10,956
10,771
34,169
158,861
Diff
1,691
2,643
-533
-12,358

我们看到,在直接读写上,写Raid10会略快于Raid5;而在读取上,Raid5会略快于Raid10,这符合我们通常的观点.

这里需要提一下的是,通常我们建议把RedoLog file存放在Raid10的磁盘上,因其具有写优势.

c.EMC CLARiiON CX500 启用1G写Cache的测试数据

这是4块盘的Raid10的测试数据:


# ./bonnie++ -d /eygle -u root -s 8192 -m jump
Using uid:0, gid:1.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
jump 8G 31447 90 73130 50 29123 50 33607 97 144470 71 493.5 6
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 786 13 +++++ +++ 1534 14 781 12 +++++ +++ 1527 15
jump,8G,31447,90,73130,50,29123,50,33607,97,144470,71,493.5,6,16,786,13,+++++,+++,1534,14,781,12,+++++,+++,1527,15

这是4块盘的Raid5的测试数据:


# ./bonnie++ -d /eygle -u root -s 8192 -m jump
Using uid:0, gid:1.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
jump             8G 34620  98 103440  65 35756  61 33900  97 160964  76 495.4   6
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16   788  12 +++++ +++  1503  14   783  11 +++++ +++  1520  15
jump,8G,34620,98,103440,65,35756,61,33900,97,160964,76,495.4,6,16,788,12,+++++,+++,1503,14,783,11,+++++,+++,1520,15

                

我们再来对比一下这个结果(单位K/sec):

字符写
Block写
字符读
Block读
Raid10
31,447
73,130
33,607
144,470
Raid5
34,620
103,440
33,900
160,964
Diff
-3,173
-30,310
-293
-16,494

Raid5在启用了大的Write Cache下,性能全面超过了Raid10

3.对T3和Emc做个对比

都是4块盘的Raid5的情况下:

字符写
Block写
字符读
Block读
T3
9,915
30,319
9,999
47,326
EMC
34,620
103,440
33,900
160,964
Diff
-24,705
-73,120
-23,901
-113,638
Emc/T3
3.49
3.41
3.39
3.40

如欲转载,请注明作者与出处.并请保留本文的连接.

分享到:
评论

相关推荐

    bonnie++-1.04源码包,可直接进行交叉编译版本

    《bonnie++-1.04源码包:探索嵌入式Linux设备的磁盘性能优化》 在IT行业中,特别是在嵌入式系统领域,理解并优化设备的硬件性能至关重要,尤其是在存储系统的层面。Bonnie++,作为一个开源的磁盘性能测试工具,为...

    bonnie++ linux测试磁盘IO性能的工具

    例如,`bonnie++ -d /mnt/test -s 1024M` 将在/mnt/test目录下进行1GB大小的测试。 bonnie++的输出报告包含多个部分,每部分都有其独特的意义。"Sequential Read/Write"展示了硬盘连续读写的速度,这是衡量硬盘基础...

    LINUX下硬盘写盘速度的测试工具bonnie++

    Bonnie++是一个流行的开源工具,专门用于衡量存储系统的读写速度、I/O吞吐量以及其他关键性能指标。这款工具广泛应用于系统管理员和开发者,帮助他们了解硬件的潜力,优化系统配置,或者在不同硬件之间进行比较。 ...

    bonnie++-1.03a-3.i386.rpm

    bonnie++-1.03 的RPM安装包,bonnie++-1.03a-3.i386.rpm

    bonnie++-1.03a.gz

    我们通过bonnie++来测试各种磁盘配置,或者测试各种RAID设置下的磁盘效率,可以有助于我们对于各个产品或者各个方案的磁盘吞吐效率有个大体认识。 tar zxvf bonnie++-1.03a.tgz ./configure make make install

    bonnie_arm

    bonnie ARM版本 方便進行IO相關測試

    BONNIE

    【标题】:“BONNIE”字体介绍及应用 【正文】: “BONNIE”是一款极具特色的字体,以其独特的设计风格和可读性在众多字体中脱颖而出。这款字体通常用于各种创意设计、品牌标识、广告宣传以及网页设计等领域,以...

    android-bonnie,安卓版邦妮.zip

    Android版的Bonnie(即android-bonnie)将这一经典工具移植到了Android系统上,使得开发者可以对Android设备的文件系统进行详尽的性能测试,从而找出潜在的瓶颈并进行优化。 该项目的主要功能包括: 1. **文件操作...

    存储系统和磁盘压力测试工具操作指导

    Bonnie++提供了丰富的测试选项,使得用户能够深入分析存储系统的性能。 - **下载地址**:[http://www.coker.com.au/bonnie++/](http://www.coker.com.au/bonnie++/) - **主要功能**: - 磁盘I/O性能测试 - 文件...

    bonnie0o0.github.io

    故事 故事是为讲故事的人设计的最小的杰基尔主题。 在签出演示。...theme插件安装(适用于GitHub Pages托管站点) 直接分叉项目Ruby Gem方法将此行添加到您的Gemfile : gem "tale" 安装主题的宝石和依赖项: $ bundle ...

    linux下测试磁盘io性能工具

    5. ** Bonnie++ 和 Sysbench**:这些是更全面的基准测试套件,除了I/O性能测试,还包含了CPU和其他系统资源的测试。 二、图形界面测试工具vdt5 vdt5是Linux下一款提供图形界面的磁盘I/O性能测试工具。它允许用户...

    存储测试方案.docx

    (4)BONNIE++:是一个文件系统测试工具,可以测试文件系统的读写性能。 四、存储系统测试指标 存储系统测试指标包括: (1)IO率:存储系统的输入/输出速度。 (2)传输率:存储系统的数据传输速度。 (3)...

    Stroop color-word test: A screening measure of selective attention to differentiate LD from non LD children

    Stroop color-word test: A screening measure of selective attention to differentiate LD from non LD children P.r?rholugI, in ihe Srhoob Volunie 21, January. I084 STROOP COLOR-WORD TEST: A ...

    bonnie

    "Bonnie"是一款在Linux和Unix系统中广泛使用的性能测试工具,主要用来评估文件系统的读写速度、I/O性能以及磁盘子系统的整体性能。它通过执行一系列的基准测试,如创建、读取、更新和删除大量文件,来衡量系统的性能...

    Bonnie说明文件(含源代码)

    Linux测试硬盘性能的工具Bonnie的说明文件(含源代码)

    Bonnie Follow Me To-crx插件

    邦妮(Bonnie)有一个月的假期,她和她的男朋友想度过这段时间到世界各地旅行。 她也想要 邦妮(Bonnie)有一个月的假期,她和她的男朋友想度过这段时间到世界各地旅行。 她还想拍摄一些艺术照片,将其发布到社交...

Global site tag (gtag.js) - Google Analytics