I spent some time trying to configure a acceptable-performance software RAID-5 on one of my NetBSD servers with 8x 18GB 10K RPM U160 SCSI drives.
NetBSD’s RaidFrame is very flexible. The code’s orgin was a RAID simulator, and as a result has many, many knobs: raid level, queuing discipline, queue length, sectors per stripe unit, stripe units per parity unit, stripe units per reconstruction unit, etc…
Since the RAID volume was intended to be used as /home, I needed both read and write performance. I spent a week of evenings reconstructing the RAID with different parameters, running disk benchmarks, etc. Read performance ranged from good to great, but write performance generally sucked. My ultimate conclusion that software RAID-5 is too I/O and compute intensive to use.
I replaced my SCSI controller with a Mylex hardware RAID card, set up a RAID-5 volume, and have been pleased ever since. Especially some 3 months later when one of my drives failed and everything continued working until I got the replacement. Writes are still not as fast as I’d like, but that shows up in benchmarks more than actual use.
I know that Linux != NetBSD, but if the bottlenecks are in the CPU and I/O bandwidth, I would expect similar (disapointing) results.