|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
支持多种存储引擎。
原文链接:
http://www.eygle.com/unix/Use.Bonnie++.To.Test.IO.speed.htm
因为Bonnie存在一些尽人皆知的成绩,好比>2G的文件撑持.
RussellCoker(russell@coker.com.au)开辟了一套新的代码,用以撑持>2G的文件等.
失掉TimBray(tbray@textuality.com)的允许以后,Russell把他的软件定名为bonnie++,在网上公布,并入手下手盛行起来.
今朝的版本已更新到了1.03a,你能够到以下地点下载:
http://www.coker.com.au/bonnie++/
你也能够点击这里下载,这个版本必要编译,假如你没有编译情况,能够点击这里下载我编译好的,合用于SUNSolaris情况(Solaris8测试经由过程)
RussellCoker的团体主页是:
http://www.coker.com.au/
Bonnie++与bonnie的区分次要是:
http://www.coker.com.au/bonnie++/diff.html
我复杂先容一下Bonnie++的编译及利用:
1.编译
你必要把以高低载的源码编译今后才干利用,假如你没有编译情况,能够点击这里下载我编译好的,合用于SUNSolaris情况(Solaris8测试经由过程)
固然你必要安装make,及gcc等需要编译器.在编译过程当中,假如碰到以下毛病,多是由于你没有设置准确的情况变量
$./configure
grep:illegaloption--q
Usage:grep-hblcnsviwpatternfile...
grep:illegaloption--q
Usage:grep-hblcnsviwpatternfile...
checkingforg++...g++
checkingforC++compilerdefaultoutput...a.out
checkingwhethertheC++compilerworks...configure:error:cannotrunC++compiledprograms.
Ifyoumeanttocrosscompile,use`--host.
See`config.logformoredetails.
设置情况变量后持续编译,一样平常能够乐成.
#exportLD_LIBRARY_PATH=/usr/lib:/usr/local/lib
#./configure
grep:illegaloption--q
Usage:grep-hblcnsviwpatternfile...
grep:illegaloption--q
Usage:grep-hblcnsviwpatternfile...
checkingforg++...g++
checkingforC++compilerdefaultoutput...a.out
checkingwhethertheC++compilerworks...yes
checkingwhetherwearecrosscompiling...no
checkingforsuffixofexecutables...
checkingforsuffixofobjectfiles...o
checkingwhetherweareusingtheGNUC++compiler...yes
checkingwhetherg++accepts-g...yes
checkinghowtoruntheC++preprocessor...g++-E
checkingforaBSD-compatibleinstall.../usr/bin/install-c
checkingforanANSIC-conformingconst...yes
checkingforegrep...egrep
checkingforANSICheaderfiles...yes
checkingforsys/types.h...yes
checkingforsys/stat.h...yes
checkingforstdlib.h...yes
checkingforstring.h...yes
checkingformemory.h...yes
checkingforstrings.h...yes
checkingforinttypes.h...yes
checkingforstdint.h...no
checkingforunistd.h...yes
checkingforsize_t...yes
checkingvector.husability...yes
checkingvector.hpresence...yes
checkingforvector.h...yes
checkingvectorusability...yes
checkingvectorpresence...yes
checkingforvector...yes
checkingalgorithmusability...yes
checkingalgorithmpresence...yes
checkingforalgorithm...yes
checkingalgo.husability...yes
checkingalgo.hpresence...yes
checkingforalgo.h...yes
checkingalgousability...no
checkingalgopresence...no
checkingforalgo...no
configure:creating./config.status
config.status:creatingMakefile
config.status:creatingbonnie.h
config.status:creatingport.h
config.status:creatingbonnie++.spec
config.status:creatingbon_csv2html
config.status:creatingbon_csv2txt
config.status:creatingsun/pkginfo
config.status:creatingconf.h
config.status:conf.hisunchanged
编译完成以后会天生bonnie++,能够用来测试了.
2.上面是一些测试了局
a.T3年夜文件读写测试
#./bonnie++-d/data1-uroot-s4096-mbillingUsinguid:0,gid:1.Writingwithputc()...doneWritingintelligently...doneRewriting...doneReadingwithgetc()...doneReadingintelligently...donestartem...done...done...done...Createfilesinsequentialorder...done.Statfilesinsequentialorder...done.Deletefilesinsequentialorder...done.Createfilesinrandomorder...done.Statfilesinrandomorder...done.Deletefilesinrandomorder...done.Version1.03------SequentialOutput--------SequentialInput---Random--PerChr---Block---Rewrite--PerChr---Block----Seeks--MachineSizeK/sec%CPK/sec%CPK/sec%CPK/sec%CPK/sec%CP/sec%CPbilling4G991587303195611685389999994732666177.63------SequentialCreate--------------RandomCreate---------Create----Read----Delete---Create----Read----Delete--files/sec%CP/sec%CP/sec%CP/sec%CP/sec%CP/sec%CP1663919++++++++12582267916++++++++119727billing,4G,9915,87,30319,56,11685,38,9999,99,47326,66,177.6,3,16,639,19,+++++,+++,1258,22,679,16,+++++,+++,1197,27
b.EMCCLARiiONCX500测试数据
这个是在我禁用了写Cache今后的测试数据:
4块盘的Raid1+0测试:
#./bonnie++-d/eygle-uroot-s4096-mjumpUsinguid:0,gid:1.FilesizeshouldbedoubleRAMforgoodresults,RAMis4096M.#./bonnie++-d/eygle-uroot-s8192-mjumpUsinguid:0,gid:1.Writingwithputc()...doneWritingintelligently...doneRewriting...doneReadingwithgetc()...doneReadingintelligently...donestartem...done...done...done...Createfilesinsequentialorder...done.Statfilesinsequentialorder...done.Deletefilesinsequentialorder...done.Createfilesinrandomorder...done.Statfilesinrandomorder...done.Deletefilesinrandomorder...done.Version1.03------SequentialOutput--------SequentialInput---Random--PerChr---Block---Rewrite--PerChr---Block----Seeks--MachineSizeK/sec%CPK/sec%CPK/sec%CPK/sec%CPK/sec%CP/sec%CPjump8G1264736134148795213336369714650371465.75------SequentialCreate--------------RandomCreate---------Create----Read----Delete---Create----Read----Delete--files/sec%CP/sec%CP/sec%CP/sec%CP/sec%CP/sec%CP16861++++++++1611811++++++++1631jump,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-uroot-s8192-mjumpUsinguid:0,gid:1.Writingwithputc()...doneWritingintelligently...doneRewriting...doneReadingwithgetc()...doneReadingintelligently...donestartem...done...done...done...Createfilesinsequentialorder...done.Statfilesinsequentialorder...done.Deletefilesinsequentialorder...done.Createfilesinrandomorder...done.Statfilesinrandomorder...done.Deletefilesinrandomorder...done.Version1.03------SequentialOutput--------SequentialInput---Random--PerChr---Block---Rewrite--PerChr---Block----Seeks--MachineSizeK/sec%CPK/sec%CPK/sec%CPK/sec%CPK/sec%CP/sec%CPjump8G109563010771633885341699815886175431.15------SequentialCreate--------------RandomCreate---------Create----Read----Delete---Create----Read----Delete--files/sec%CP/sec%CP/sec%CP/sec%CP/sec%CP/sec%CP16811++++++++1601821++++++++1091jump,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读Raid1012,64713,41433,636146,503Raid510,95610,77134,169158,861Diff1,6912,643-533-12,358
我们看到,在间接读写上,写Raid10会略快于Raid5;而在读取上,Raid5会略快于Raid10,这切合我们一般的概念.
这里必要提一下的是,一般我们倡议把RedoLogfile寄存在Raid10的磁盘上,因其具有写上风.
上面我们说了DML的闪回方案。但对于DDL却无能为力,对于大多数的DDL,即使是rowbase格式,二进制日志binlog中仍只记录语句本身。对于删表操作,只记录一个语句droptablet。仅凭这句话,无法还原表的数据。 |
|