前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Use bonnie++ to Test system IO speed[修正稿]

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

作者头像
数据和云01
发布2018-09-12 16:41:54
4800
发布2018-09-12 16:41:54
举报
文章被收录于专栏:数据库新发现

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等必要编译器.在编译过程中,如果遇到以下错误,可能是因为你没有设置正确的环境变量

$ ./configuregrep: illegal option -- qUsage: grep -hblcnsviw pattern file . . .grep: illegal option -- qUsage: grep -hblcnsviw pattern file . . .checking for g++... g++checking for C++ compiler default output... a.outchecking 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# ./configuregrep: illegal option -- qUsage: grep -hblcnsviw pattern file . . .grep: illegal option -- qUsage: grep -hblcnsviw pattern file . . .checking for g++... g++checking for C++ compiler default output... a.outchecking whether the C++ compiler works... yeschecking whether we are cross compiling... nochecking for suffix of executables... checking for suffix of object files... ochecking whether we are using the GNU C++ compiler... yeschecking whether g++ accepts -g... yeschecking how to run the C++ preprocessor... g++ -Echecking for a BSD-compatible install... /usr/bin/install -cchecking for an ANSI C-conforming const... yeschecking for egrep... egrepchecking for ANSI C header files... yeschecking for sys/types.h... yeschecking for sys/stat.h... yeschecking for stdlib.h... yeschecking for string.h... yeschecking for memory.h... yeschecking for strings.h... yeschecking for inttypes.h... yeschecking for stdint.h... nochecking for unistd.h... yeschecking for size_t... yeschecking vector.h usability... yeschecking vector.h presence... yeschecking for vector.h... yeschecking vector usability... yeschecking vector presence... yeschecking for vector... yeschecking algorithm usability... yeschecking algorithm presence... yeschecking for algorithm... yeschecking algo.h usability... yeschecking algo.h presence... yeschecking for algo.h... yeschecking algo usability... nochecking algo presence... nochecking for algo... noconfigure: creating ./config.statusconfig.status: creating Makefileconfig.status: creating bonnie.hconfig.status: creating port.hconfig.status: creating bonnie++.specconfig.status: creating bon_csv2htmlconfig.status: creating bon_csv2txtconfig.status: creating sun/pkginfoconfig.status: creating conf.hconfig.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 jumpUsing uid:0, gid:1.Writing with putc()...doneWriting intelligently...doneRewriting...doneReading with getc()...doneReading intelligently...donestart '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 %CPjump 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 15jump,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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2004年09月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档