LINK:
http://www.eygle.com/unix/Use.bonnie .to.test.io.speed.htm
Since Bonnie has some well-known issues, such as> 2G file support. Russell Coker (Russell@coker.com.au) developed a new code to support> 2G files, etc. Get Tim Bray (TBRAY @ Textuality After .com), Russell named Bonnie , released online, and started to be popular.
The current version has been updated to 1.03a, you can download: http://www.coker.com.au/bonnie / You can also click here to download, this version needs to be compiled, if you don't have a compilation environment, you can click Download my compilation here for the Sun Solaris environment (Solaris8 test passed)
The personal home page of Russell Coker is: http://www.coker.com.au/
The difference between Bonnie and Bonnie is: http://www.coker.com.au/bonnie /diff.html
I briefly introduce Bonnie compilation and use:
Compilation
You need to use the source code described above to use, if you don't have a compilation environment, you can click here to download my compilation, apply to the Sun Solaris environment (Solaris8 test passed)
Of course, you need to install make, and GCC and other necessary compilers. During the compilation process, if you encounter the following error, you may be because you don't set the correct environment variable
$ ./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 Wors ... configure: Error: Cannot Run C Compiled program.if You Meant To Cross Compile, USE `- Host'.see` config.log 'for more details.
Continue to compile after setting the environment variable, generally can be successful.
# export ld_library_path = / usr / lib: / usr / local / lib # ./configuregrep: 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 intertys.h ... yeschecking for stdint.h ... Nochecking For unist dh .. 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: After conf.h is unchanged compiled generates bonnie , it can be used for testing.
2. Here are some test results
A.T3 big file reading and writing test
#./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 ------ - Squential 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 ------------------------------------------------------------------------------------------------------------------------------------------------
-Create ------ -ndelete ---create-- ------ndelete--
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 CLARiON CX500 Disables test data written by Cache
This is the test data after I have disabled Cache:
4 plates of RAID1 0 test:
#./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 jumpusing 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 ------ - Squential 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 ------------------------------------------------------------------------------------------------------------------------------------------------
-Create ------ -ndelete ---create-- ------ndelete--
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 plates of RAID5, disabled the speed after writing 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 ------------------------------------------------------------------------------------------------------------------------------------------------
-Create ------ -ndelete ---create-- ------ndelete--
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
Compare these two results we found (unit k / sec):
Character write
Block writes
Character read
Block read
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
We see that in direct reading, write RAID10 will be slightly faster than RAID5; and RAID5 will be slightly faster than RAID10, which is in line with our usual point of view.
What is needed here is usually, we recommend that redolog file is stored on the RAID10 disk because it has a write advantage.
C.EMC CLARiON CX500 Enables 1G write cache test data
This is the test data of the 4-plate RAID10:
# ./bonnie -d / Eygle -u root -s 8192 -m jumpusing uid: 0, gid: 1.writing with putc () ... DONEWRITITING Intelligently ... donrewriting ... donreading with getc () ... DonReading Intelligently ... doStart '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- --radom- -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------ -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 This is the four-plate RAID5 test data:
#./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 ------ - Squential 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 ------------------------------------------------------------------------------------------------------------------------------------------------
-Create ------ -ndelete ---create-- ------ndelete--
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
Let's compare this result (unit k / sec):
Character write
Block writes
Character read
Block read
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 is fully exceeded by RAID10 in a large Write Cache
3. Do a comparison of T3 and EMC
It is the case of a 4-piece RAID5:
Character write
Block writes
Character read
Block read
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
To reprint, please indicate the author and the source. And please keep this paper.