Use bonnie++ to Test system IO speed
2004-09-19 00:43
281 查看
原文链接:
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等必要编译器.在编译过程中,如果遇到以下错误,可能是因为你没有设置正确的环境变量
设置环境变量后继续编译,一般可以成功.
编译完成之后会生成bonnie++,可以用来测试了.
2.下面是一些测试结果
a.T3大文件读写测试
b. EMC CLARiiON CX500 测试数据
这个是在我禁用了写Cache以后的测试数据:
4块盘的Raid1+0测试:
4块盘的Raid5,禁用写Cache后的速度:
对比这两个结果我们发现(单位K/sec):
我们看到,在直接读写上,写Raid10会略快于Raid5;而在读取上,Raid5会略快于Raid10,这符合我们通常的观点.
这里需要提一下的是,通常我们建议把RedoLog file存放在Raid10的磁盘上,因其具有写优势.
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 |
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 |
这个是在我禁用了写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 |
# ./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 |
字符写 | 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 |
这里需要提一下的是,通常我们建议把RedoLog file存放在Raid10的磁盘上,因其具有写优势.
相关文章推荐
- Use bonnie++ to Test system IO speed[修正稿]
- Usebonnie++toTestsystemIOspeed[修正稿]
- Usebonnie++toTestsystemIOspeed
- Use bonnie to Test system IO speed
- UsebonnietoTestsystemIOspeed
- Use orabm To test system CPU
- How to Collect and Display System Statistics (CPU and IO) for CBO use
- How to Collect and Display System Statistics (CPU and IO) for CBO use (Doc ID 149560.1)
- use cmake to compile static library and test
- Use expect command to interact with mysql in linux system
- How to use the System Restore API to save and to restore system data in Visual C++
- 【IBM-WALA】Step by Step : use WALA to generate System Dependency Graph PDF and Dot File (Mac)
- how to use systemctl on linux(debian)
- use AT command to send a sms in linux system
- Know How And When To Use System.Message_Level To Control Messages In Oracle Forms
- flask_socket_io中报错RuntimeError: You need to use the eventlet server. See the Deployment section of the documentation for more information.的解决办法
- Logging system failed to initialize using configuration from 'classpath:logback-test.xml'
- [systemd]How To Use Systemctl to Manage Systemd Services and Units
- Tips: How to use system environment variables in VS 2008 Post-Build events?
- Leveraging Alluxio with Spark SQL to Speed Up Ad-hoc Analysis