OpenFiler Bonnie++ V1.03 Benchmark results

The following are the results of the Bonnie++ Disk Performance benchmark tests that I ran on my new OpenFiler V2.2 server before placing it into production. I was testing to prove that the disk drive/drive controller configuration I had come up with was cost effective and performed well.

I am replacing an old OpenFiler V1.1 server that has a LSI Logic MegaRAID i4 controller and five 80GB hard drives. This is also running on an older motherboard and has less than stellar performance.

The new hardware consists of:

So you can see that it's pretty cheap (around $500). And it's a terabyte! (Well, almost. The drives show up as 238GB, so the total size is around 952GB, but it's all in how you count it and I'm going to call it a terabyte!) My current filer is only 320GB and it's filling up with MP3s and digital photos.

Notes:

Test Conditions

The motherboard has two on-board IDE controllers and two dual-channel PCI bus controllers for a total of four separate PCI buses (and six PCI slots).

The Promise Ultra100 TX2 cards were flashed with the latest firmware update (2.20.0.15)

The motherboard PnP BIOS configuration was cleared each time the Ultra100 TX2 cards were added or removed.

The latest version of OpenFiler (2.2) was installed and "conary updateall" was performed.

bonnie++ V1.03 (the latest stable version) was installed using the following procedure found on the OpenFiler Forums:

All tests were performed with an md software RAID 5 array made of full disk partitions on five 250GB drives using the default 64K chunk size for a total RAID 5 size of ~1TB.

An LVM volume group was created out of the whole array.

A 200000MB XFS formatted volume was created to run the tests in.

All the RAID and volume creation was done using the OpenFiler web interface. Some of the volume removal had to be performed using the command line utilities as there appear to be some OpenFiler bugs related to this procedure.

The bonnie++ command line was:

bonnie++ -u root \
   -d /mnt/vol-huge/test-vol1/test \
   -s 2016M \
   -n 10:102400:1024:1024 \
   -m yakko \
   -q > /var/tmp/bonnie_test.csv 2> /var/tmp/bonnie_test.out

bonnie++ options explained:

Each bonnie++ test was run 10 times with a 60 second sleep between each run to let everything settle and then the results were averaged.

Testing Configurations

Four different tests were performed. Additionally, after the new filer is moved into production a test will be run on the old filer for sake of comparison.

Test 1 Configuration

Test 2 Configuration

Test 3 Configuration

Test 4 Configuration

Test Data Summary

The following table is a summary of the results. All the test results can be seen on the Full Results page. And are available in an Excel file and a CSV file in case you want to play with the numbers yourself.

Sequential Output Sequential Input Random Seeks Sequential Create Random Create
Per Char Block Rewrite Per Char Block     Create Read Delete Create Read Delete
  K/sec % CPU K/sec % CPU K/sec % CPU K/sec % CPU K/sec % CPU / sec % CPU / sec % CPU / sec % CPU / sec % CPU / sec % CPU / sec % CPU / sec % CPU
Test 1                                                
Minimum 14321 92 60392 29 11046 4 13281 65 86725 23 312 1 206 5 2302 15 145 2 197 5 2452 16 109 1
Maximum 30289 96 76245 37 13069 6 30181 91 93801 27 373.1 1 243 6 5056 32 187 2 226 5 3916 25 143 2
Max Deviation 15968 4 15853 8 2023 2 16900 26 7076 4 61.1 0 37 1 2754 17 42 0 29 0 1464 9 34 1
Median 29448.5 94 67156 34 11702 5 24998 74 90060 25 327.1 1 220.5 5 3328.5 21.5 157.5 2 211.5 5 3101 20.5 121 1
Average 28011 94.1 66823.9 33.4 11811.7 5 24548.4 76 90555.4 25 335.27 1 222.5 5.3 3441 22.5 158.6 2 210.1 5 3118.1 20.3 122.5 1.3
Test 2                                                
Minimum 29715 95 83638 45 14351 7 26849 74 70879 18 371.7 1 348 9 3284 22 245 3 323 8 3072 21 208 3
Maximum 30844 97 105861 58 17744 9 30927 95 119184 35 446.1 2 401 10 5759 38 538 6 363 9 6443 42 410 5
Max Deviation 1129 2 22223 13 3393 2 4078 21 48305 17 74.4 1 53 1 2475 16 293 3 40 1 3371 21 202 2
Median 30320 96 91001 49.5 16003 7.5 27443 82.5 115529.5 31 389.85 1 370.5 9 4377 29 334.5 4.5 343 9 4134 27 249.5 3
Average 30292.5 96.1 94399.8 51 16067.2 7.7 28151.5 82.5 111250.6 30.4 399.32 1.2 367 9.3 4421.2 29.4 356.7 4.3 344.8 8.7 4462.4 29.3 262.9 3.5
Test 3                                                
Minimum 28962 95 83550 46 14365 7 27140 74 60896 17 380.3 1 324 8 3162 21 230 3 328 8 3301 22 193 3
Maximum 30565 96 109493 58 18301 9 28644 87 118818 33 449.7 2 442 11 9273 60 1447 15 390 10 5037 33 326 4
Max Deviation 1603 1 25943 12 3936 2 1504 13 57922 16 69.4 1 118 3 6111 39 1217 12 62 2 1736 11 133 1
Median 30138 96 95922 51.5 15821.5 8 27714.5 80.5 117408.5 29.5 420.55 2 369.5 9 3969.5 26.5 339.5 4.5 349 9 4165.5 27.5 239.5 3
Average 30053.4 95.8 96922 52 15926 7.7 27740.9 80.4 104540.8 27.9 414.65 1.6 372.8 9.4 4783.8 31.8 548.9 6.4 352.1 8.9 4157.1 27.5 245.1 3.2
Test 4                                                
Minimum 30218 95 85954 44 13990 7 25478 70 91552 27 365.6 1 341 9 3129 22 218 3 319 8 3407 23 194 3
Maximum 30851 97 99114 52 17946 9 27842 83 97236 30 452.6 2 405 10 4910 33 446 5 374 10 7360 48 336 4
Max Deviation 633 2 13160 8 3956 2 2364 13 5684 3 87 1 64 1 1781 11 228 2 55 2 3953 25 142 1
Median 30348 96 88472 46.5 16409.5 8 26585 76.5 95806 29 397.2 1 363.5 9 4158 28 240.5 3 339 9 4175.5 28.5 234 3
Average 30449.2 96.2 90967.3 47.5 16041.1 7.8 26651.5 77.2 95225.6 29.2 400.6 1.3 367.7 9.2 4144.7 28.3 258.2 3.4 342.8 8.7 4592.9 30.9 244.8 3.2

Test Results Summary

I was surprised to see that Configuration 3 had slightly better performance on most of the read tests (which I feel is more important than the write tests.) I expected that Configuration 4 would be better, but it's not. So I will be building my filer following Configuration 3.

Other things I learned

Linux md software RAID is amazingly resilient.

I swapped the five RAID 5 drives around between all the controllers - changing the drive device names - and the array was still clean. Surprised the hell out of me.

The Linux kernel is smarter than the motherboard BIOS.

When I stuck the third Ultra100 TX2 card in the machine I was concerned by the fact that only two appeared to be recognised and that only 8 available drives were listed. Not to mention the fact that when I had five drives plugged into the three cards it only listed three drives!

But a bit of Googling led me to believe that it would work correctly under recent Linux kernels and when I booted into OpenFiler, sure enough, it saw all three controllers and all five drives.

Related Information


This page and all content Copyright 2007 Timothy W. Foreman
Page last updated 06 January 2007