For a certain read/write workload, I get 30 MiB/s from a 4-disk array using esata port multiplication. When I move the exact same array to four individual sata connections, I get 90 MiB/s for the same workload. Is this the expected performance impact of the multiplier? If not, how do I narrow the problem down between the software, controller, or enclosure?
I've gotten the exact same results even after trying a large number of variables over the years:
- Many Linux versions (RHEL5, Fedora 9, 11, 13, 16) and all the kernels that entails.
- Two types of enclosures (both low-end $100 4-disk models), four enclosures in total.
- Two types SATA controller chipsets (Marvell 88SE91xx and Silicon Image 3132)
- Four SATA controllers (Around $30 - $60 pci-x1 interface cards and one PCI, all FIS-based switching).
- Three SATA speeds (1.5-, 3.0-, and 6.0-Gbps)
- Four types of hdds (Samsung Spinpoint F1 1TB, WD Caviar Black 2TB, Seagate Barracuda XT 3TB).
- Three computers (Athlon 3ghz+1GB RAM when I made the first e-sata array, then Core 2 Duo+4GB, now a Core i5 750+8GB).
When I did my first eSATA enclosure all those years ago, I assumed the slow speed was related to using a PCI (33mhz) card, immature SATA drivers, or perhaps the SATA-1.5Gbps 5400 RPM drives. But now with an x1 6Gbps controller, 3.0 kernel, and 6Gbps 7200rpm HDDS, still nothing has changed. I still get the same 30 MiB/s for that particular workload until I move it to individual SATA connections.
Is this a fundamental limitation of all port multiplication implementations?