For the fun of it – Benchmarking the HP Smart Array 420i controller

Armed with a HP ML350P, a huge pile of hard drives, SQLIO, PowerShell, CreateFile, and Captain Morgan (with diet coke) I set out to test what type of performance the HP Smart Array 420i controller would give me. Here is the result.

Background info

Benchmarking is never an exact science, but with the same type of load, and disk arrays, you can at least get a good idea about what disks that gives the most performance / dollar spent. The server used in the test was a HP 350P server with the HP Smart Array 420i controller.

ml350p
The HP ML350p used in the tests.

For disk I/O I like using SQLIO, and the critical thing about using SQLIO is to have enough amount of data to test with, a 100 GB file is enough for most tests, and to run the tests a least a few minutes. And please do not create the file using FSUtil, because it will just create an empty file, which the controller cache may suck into RAM immediately and your test results will be off the charts. Create a "real" file, with content, generate a giant ISO file, or a large WinRAR archive, anything you can think of as long as the file is full with data.

I like to use the free CreateFile.exe written by Deepak Kumar (Adaptiva), which create test files that are uncompressible, again, so you can get real results. For all tests I was using 4 worker threads which gives me a good maximum load of the disk I/O.

In the test I compared two different SAS disk arrays with a SSD disk array, here is the result:

Result Summary

The HP Smart Array 420i controller does a pretty good job, but it all comes down to what disks you put in the server. SSD drives may have fantastic performance in theory, but it's the combination of server, controller and disks that in the determines performance.

For sequential read, 64 kb blocks, the SSD's were about 3 – 4 times faster than the two SAS arrays

For random read, 64 kb blocks, the SSD's were about 13 – 18 times faster than the two SAS arrays

For write, 64 kb blocks, the SSD's were about 11 – 17 times faster than the two SAS arrays

Test Details

Below you find the gory details from the tests. The PowerShell script that did the testing looked like this:

$BenchmarkFile = "D:\Benchmarkfile.dat"

# Read Sequential, 64kb blocksize
.\SQLIO.EXE -s120 -kR -fsequential -b64 -t4 -o2 -LS -BN $BenchmarkFile

# Read Random, 64 kb blocksize
.\SQLIO.EXE -s120 -kR -frandom -b64 -t4 -o16 -LS -BN $BenchmarkFile

# Write Random, 64 kb blocksize
.\SQLIO.EXE -s120 -kW -frandom -b64 -t4 -o16 -LS -BN $BenchmarkFile

Test with 2 x 146 GB disks (RAID 1, 64 kb blocks)

These drives are some older HP EH0146FARWD SAS drives, 146 GB each, but they still gives quite good speed.

The first test was the 64 kb sequential read.

IOs/sec:  3999.57

MBs/sec:   249.97

Second test was the 64 kb random read.

IOs/sec:   961.67

MBs/sec:    60.10

The final test was the 64 kb write

IOs/sec:   607.25

MBs/sec:    37.95

Test with 2 x 500 GB disks (RAID 1, 64 kb blocks)

These drives are some newer HP MM0500FBFVQ  SAS drives, 500 GB each.

The first test was the 64 kb sequential read.

IOs/sec:  2889.47

MBs/sec:   180.59

Second test was the 64 kb random read.

IOs/sec:   690.65

MBs/sec:    43.16

The final test was the 64 kb write

IOs/sec:   397.24

MBs/sec:    24.82

 

Test with 2 x 180 GB SSD disks (RAID 1, 64 kb blocks)

These drives are the ATA INTEL SSDSC2CW18 (SATA SSD), 180 GB each.

The first test was the 64 kb sequential read.

IOs/sec: 10226.23

MBs/sec:   639.13

Second test was the 64 kb random read.

IOs/sec: 12390.94

MBs/sec:   774.43

The final test was the 64 kb write

IOs/sec:  6798.36

MBs/sec:   424.89

About the author

Johan Arwidmark

0 0 votes
Article Rating
Subscribe
Notify of
guest
2 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
steveburkett
steveburkett
8 years ago

Think you should spell it out that the 146GB disks are 15k rpm, whereas the 500GB disks are 7.2k rpm. Was wondering why the big difference for a minute there!

alexmags
alexmags
8 years ago

Good tips. I've been using Crystal DiskMark and PassMark for benchmarking. Have been experimenting with putting large pagefile (64GB) on SSD for a research tool that just eats RAM. Also for apps that read/write lots of files, try turn off indexing (attrib.exe +I ). This saves IOPS to the index database on C: for every file write/delete if its a filetype that is index. Really helped our developer's compiling.


>