Thursday, October 22, 2009

SATA2 and linux software RAID performance

A server I have to manage has 9 SATAII disks of 1TB each. Six of them are plugged directly to an ASRock motherboard, and three of them on a Promise PCI card providing 4 SATA II ports. These disks are partitioned on the same design: 2 partitions, a small one (1GB) for a RAID-1 and a the remaining for a RAID-5. I am therefore not using dedicated hardware but the great software RAID implemented in linux kernel.

I was wondering what were the performances of these disks and the RAID volumes, so I performed a very simple test with hdparm:
# hdparm -tT /dev/sd? /dev/md?
Timing cached reads:   4956 MB in  2.00 seconds = 2478.45 MB/sec
Timing buffered disk reads:  278 MB in  3.00 seconds =  92.62 MB/sec

Timing cached reads:   4912 MB in  2.00 seconds = 2456.58 MB/sec
Timing buffered disk reads:  290 MB in  3.01 seconds =  96.24 MB/sec

Timing cached reads:   4938 MB in  2.00 seconds = 2469.78 MB/sec
Timing buffered disk reads:  250 MB in  3.00 seconds =  83.29 MB/sec

Timing cached reads:   4924 MB in  2.00 seconds = 2462.42 MB/sec
Timing buffered disk reads:  252 MB in  3.01 seconds =  83.59 MB/sec

Timing cached reads:   4798 MB in  2.00 seconds = 2400.08 MB/sec
Timing buffered disk reads:  306 MB in  3.01 seconds = 101.79 MB/sec

Timing cached reads:   4970 MB in  2.00 seconds = 2486.40 MB/sec
Timing buffered disk reads:  308 MB in  3.01 seconds = 102.33 MB/sec

Timing cached reads:   4914 MB in  2.00 seconds = 2458.28 MB/sec
Timing buffered disk reads:  324 MB in  3.00 seconds = 107.92 MB/sec

Timing cached reads:   4964 MB in  2.00 seconds = 2482.84 MB/sec
Timing buffered disk reads:  334 MB in  3.02 seconds = 110.78 MB/sec

Timing cached reads:   4908 MB in  2.00 seconds = 2454.37 MB/sec
Timing buffered disk reads:  322 MB in  3.03 seconds = 106.30 MB/sec

Timing cached reads:   4004 MB in  2.00 seconds = 2002.08 MB/sec
Timing buffered disk reads:  236 MB in  3.01 seconds =  78.28 MB/sec

Timing cached reads:   4530 MB in  2.00 seconds = 2265.74 MB/sec
Timing buffered disk reads:  670 MB in  3.00 seconds = 223.07 MB/sec
Besides the impressive cached reads, you can see how the disks perform. On their own, they are at about 100MB/s, or 800Mbit/s which is not so bad compared to SATAII 's 3Gbit/s. RAID-5 performs twice better that the disk solely (I already knew it was better, but not so much!), while RAID-1 is 30% lower (which I didn't expect).

Also, here is the hddtemp output for you to see disk models and temperature of operation:
# hddtemp /dev/sd?
/dev/sda: SAMSUNG HD103UJ: 18°C
/dev/sdb: Hitachi HDT721010SLA360: 28°C
/dev/sdc: ST31000340AS: 25°C
/dev/sdd: WDC WD10EACS-00D6B0: 37°C
/dev/sde: MAXTOR STM31000340AS: 38°C
/dev/sdf: ST31000340AS: 38°C
/dev/sdg: Hitachi HDT721010SLA360: 39°C
/dev/sdh: SAMSUNG HD103UJ: 25°C
/dev/sdi: ST31000528AS: 30°C

Funny thing, did you notice how temperature influenced the disk performance? The cold (18°C) disks seems to be slower than the hot (39°C) ones.

1 comment:

  1. I reshaped my 8 disks RAID-5 array + 1 hot spare into a 9 disks RAID-6 in order to have better redundancy (with 9 disks, it becomes dangerous).

    I observed that RAID-6 performances are lower than RAID-5, but still twice performant as disks alone.

    Timing cached reads: 5256 MB in 2.00 seconds = 2628.75 MB/sec
    Timing buffered disk reads: 564 MB in 3.00 seconds = 187.92 MB/sec