July 18th, 2004, 23:53
Hello everyone,

I am finding some challenges in the RAID world and was hoping that some of you would have some more great ideas as to getting through these bottlenecks that I am experiencing.

I am writing a program to process and split data that is flowing from an input data board into a dual xeon processor system. The RAID must be in a RAID 5 configuration (4 SATA Drives). I'm using an Intel server board, an Adaptec 2410sa 4 port controller, and four Seagate SATA 7200.7 160GB drives. So far, the best throughput that I can get is 34MB/s sustained. I need to get 60MB/s.

I think my problem may be with the file write routines, but I don't know how to determine this. Using Visual C++ 6.0, can anyone give me some advice on how to make sure that my file handling routines are optimized for really fast throughput?



July 19th, 2004, 12:25
This is a BSD related forum so I'm not sure how much help anyone here can be with Visual C++ but we'll see.

I did do a little googling and found a couple things that I thought I would pass along. If these drives are Barracuda SATA V (You didn't say which model) then I've seen a couple benchmarks that put them around 37Mb/sec sustained reads and 18-19Mb/sec sustained writes. These are fairly common drives and Seagate does have some faster ones out now but I haven't seen any that are 60Mb/sec or over for reads let alone writes. There's new drives and they get better all the time. They might get there soon.

I read a review ( on the Adaptec controller. They used an Intel server board with dual Xeons but had IBM SATA drives. While this isn't exactly like your setup, it should give an idea of performance they achieved with 4 recent SATA drives. Looks like they got ~26Mb/sec(RAID5), ~30Mb/sec(RAID10) and ~39Mb/sec(RAID0) averages on sustained writes. I'm not refering to these numbers as a hard fact but more as a ballpark and an illustration of performance between the RAID levels.

It might be possible to get the performance out of your setup but it's more likely that your setup isn't going to quite make it to your target performance level. Ultra320 SCSI can do what you are asking without breaking a sweat and you might want to consider it if you absolutely need this level to complete your task(s).

July 19th, 2004, 13:09
Check what performance you get from a single disk first, and then check what perfomance you get from two disks in RAID0. RAID5 will not get you better performance than RAID0, but may get better performance than a single disk (for writes that is; reads should be faster). If RAID0 is around the speeds you are looking for, then you may have to try a RAID10 instead of RAID5 - RAID10 with 4 disks should be roughly equivalent to RAID0 with 2 disks for writes, and should be faster for reads. For your setup i bet you'll need RAID10 on that hardware, which will give you about %25 less space than the RAID5 (but will also be slightly more robust to disk failure).

All this is very dependant on the card, the drivers, the bus, etc.

And keep in mind all the pecularities of disks when testing, like high cylinders are slower than low ones, bus contentions, etc. These can skew results so much as to make them meaningless.