HP Smart Array E200i performance

I have at home a pretty nice server: HP ML350 G5. My model has one Quad-Core Intel Xeon Processor X5355 (2.66 GHz), 8 GB of RAM and 4x 250 GB SATA II, 2.5”, 5.4k disk drives.

I have this HW for over three years now, but never really tried to do anything besides installing an operating system and grinding some boxes. Recently I decided to run some quick tests to see the actual performance of the disks.

The machine has an built-in array controller: HP Smart Array E200i with 128MB BBWC [pdf, 149KB]. There are a lot of resources on the web saying that this is a piece of crap. This wasn’t very optimistic.

The E200i controller supports following, basic RAID versions: 0, 1+0, 5.

The reason I started searching for possible speed improvements was the (subjective) feeling that the disks are simply slow. I tried every RAID level, but wasn’t satisfied even with 0. I haven’t had any good numbers at that time though.

So I booted CentOS 6 LiveCD and started the Disk Utility and run the read-write benchmarks. The results are below.

All presented RAID logical disks were created using default settings and included all 4 disks for each level.

RAID 0 without DWC RAID 1+0 without DWC RAID 5 without DWC

Uh. Ah… I knew the performance wasn’t great but I wasn’t expecting such horrible write performance. I’m pretty happy with read performance though. Remember: these are 2.5” 5.4k disks, so nothing very fancy.

I started to crawl the web for solutions for this problem. I found ACU. HP’s Array Configuration Utility provides an easy way to view and change the configuration of the arrays. I didn’t bother myself with the gui version, I used CLI, which works just fine. You can download it from here. I installed it on the running LiveCD and started to poke around. HP ships a nice manual for using ACU [pdf, 1.8MB].

To list the status of the array controller, just run the CLI: hpacucli and execute the ctrl slot="0" show command, like this:

[root@livecd ~]# hpacucli
HP Array Configuration Utility CLI 9.0-24.0
Detecting Controllers...Done.
Type "help" for a list of supported commands.
Type "exit" to close the console.

=> ctrl slot="0" show

Smart Array E200i in Slot 0 (Embedded)
   Bus Interface: PCI
   Slot: 0
   Cache Serial Number: P9A3A0B9SWM13U
   RAID 6 (ADG) Status: Disabled
   Controller Status: OK
   Hardware Revision: A
   Firmware Version: 1.82
   Rebuild Priority: Medium
   Expand Priority: Medium
   Surface Scan Delay: 15 secs
   Surface Scan Mode: Idle
   Post Prompt Timeout: 0 secs
   Cache Board Present: True
   Cache Status: OK
   Accelerator Ratio: 50% Read / 50% Write
   Drive Write Cache: Disabled
   Total Cache Size: 128 MB
   Total Cache Memory Available: 96 MB
   No-Battery Write Cache: Disabled
   Cache Backup Power Source: Batteries
   Battery/Capacitor Count: 1
   Battery/Capacitor Status: OK
   SATA NCQ Supported: False

After quick look at the output we can see this line:

Drive Write Cache: Disabled

I found on the web that enabling DWC and setting it to 100% read and 0% write ratio improves the peroformance significantly. I changed the values using these commands:

=> ctrl slot=0 modify cacheratio=100/0
=> ctrl slot=0 modify dwc=enable

Warning: Without the proper safety precautions, use of write cache on physical
         drives could cause data loss in the event of power failure. To ensure
         data is properly protected, use redundant power supplies and
         Uninterruptible Power Supplies. Also, if you have multiple storage
         enclosures, all data should be mirrored across them. Use of this
         feature is not recommended unless these precautions are followed.
         Continue? (y/n) y

Results are quite interesting!

RAID 0 with DWC RAID 1+0 with DWC RAID 5 with DWC

Afterwards I experimented with the cache ratio but the settings 100% / 0% seems to be the best.

When ratio was set to, for example 50% / 50% (default value) the performance was better than with DWC disabled, but not as good as with 100% / 0%. At least for my tests. Maybe a specific usage of the disks will require different settings.


HP itself doesn't recommend enabling DWC for mission-critical systems and for systems without proper power infrastructure (redundancy, UPS, etc) because in case of a power outage it may destroy your data. Ouch.

Assuming we have proper power backup (I have an APC Smart-UPS connected to the box) we can go ahead and get some performance.

comments powered by Disqus