Poor read performance on Dell Perc H200 RAID10 with (4) 1TB 7200rpm 64MB drives

I am seeing only 50MB/s reads:

ensnare@box:~$ sudo hdparm -tT /dev/sda
[sudo] password for ensnare:

/dev/sda:
 Timing cached reads:   4592 MB in  2.00 seconds = 2296.48 MB/sec
 Timing buffered disk reads:  192 MB in  3.90 seconds =  49.24 MB/sec

The array is already rebuilt and operational. Is this kind of slow performance normal? Anything I can do to make it faster? There weren't too many options in the controller configuration. Thanks.


Solution 1:

The short answer is yes, that's the level of performance you should expect to see from the H200.

The long answer: The H200 is the old SAS 6iR with SATA 6Gb/s support. It doesn't have the usual features you'd see on a RAID card (battery backup unit, onboard caching, RAID5/6 support). The cache determines how fast your RAID array is (along w/ the # of spindles and type of drive), so no cache = slow performance. Add the 7200RPM SATA drives (which are slow compared to a 10-15k RPM SAS drive) and that's the level of performance you can expect.

Solution 2:

Please take a look at the following info:

The default cache policy on a physical disk is Enabled in SATA drives and Disabled on SAS drives. When physical disk caching is Enabled, disk I/O performance is improved, but a power outage or equipment failure might result in data loss or corruption.

NOTE: It is recommended that you use a backup power source for all Dell production systems.

On a PERC H200 card, caching is forced to be disabled for all physical disks configured into a virtual disk, regardless of the drive type and default drive settings.”

http://support.dell.com/support/edocs/storage/storlink/h200/en/ug/html/features.htm

Solution 3:

Maybe change the stripe size, depending on what your storing.
Is cache turned off? I have 4 1TB Western Digital Enterprise 7200 RPM drives on a 3Ware 95500-SX and my hdparm results are

zeus:/home/Kendall # hdparm -tT /dev/sdb

/dev/sdb:
Timing cached reads:   1262 MB in  2.00 seconds = 630.86 MB/sec
Timing buffered disk reads:  128 MB in  3.03 seconds =  42.30 MB/sec

That's my development server, though, which is under some load. I'd expect higher numbers if the array was idle, like I suspect yours is.

Just for some perspective, I don't exactly know if your buffered reads are "slow" but I put mine up for comparison.