Für eine bestimmte Lese- / Schreibauslastung erhalte ich 30 MiB / s von einem 4-Platten-Array unter Verwendung der Esata-Port-Multiplikation. Wenn ich genau dasselbe Array auf vier einzelne SATA-Verbindungen verschiebe, erhalte ich 90 MiB / s für dieselbe Arbeitslast. Ist dies die erwartete Auswirkung des Multiplikators auf die Leistung? Wenn nicht, wie kann ich das Problem zwischen Software, Controller oder Gehäuse eingrenzen?
Ich habe genau die gleichen Ergebnisse erzielt, selbst nachdem ich im Laufe der Jahre eine große Anzahl von Variablen ausprobiert habe:
- Viele Linux-Versionen (RHEL5, Fedora 9, 11, 13, 16) und alle dazugehörigen Kernel.
- Zwei Arten von Gehäusen (beide Low-End-Modelle mit 4 Festplatten für 100 US-Dollar), insgesamt vier Gehäuse.
- Zwei Arten von SATA-Controller-Chipsätzen (Marvell 88SE91xx und Silicon Image 3132)
- Vier SATA-Controller (ca. 30 - 60 US-Dollar für pci-x1-Schnittstellenkarten und eine PCI, alle FIS-basiertes Switching).
- Drei SATA-Geschwindigkeiten (1,5-, 3,0- und 6,0-Gbit / s)
- Vier Arten von Festplatten (Samsung Spinpoint F1 1 TB, WD Caviar Black 2 TB, Seagate Barracuda XT 3 TB).
- Drei Computer (Athlon 3 GHz + 1 GB RAM, als ich das erste E-Sata-Array erstellt habe, dann Core 2 Duo + 4 GB, jetzt Core i5 750 + 8 GB).
Als ich vor all den Jahren mein erstes eSATA-Gehäuse herstellte, ging ich davon aus, dass die langsame Geschwindigkeit mit der Verwendung einer PCI-Karte (33 MHz), unreifen SATA-Treibern oder vielleicht der SATA-1,5-Gbit / s-Laufwerke mit 5400 U / min zusammenhängt. Aber jetzt mit einem x1 6Gbps-Controller, einem 3.0-Kernel und einem 6Gbps-HDDS mit 7200 U / min hat sich immer noch nichts geändert. Ich erhalte immer noch die gleichen 30 MiB / s für diese bestimmte Arbeitslast, bis ich sie auf einzelne SATA-Verbindungen verschiebe.
Ist dies eine grundlegende Einschränkung aller Portmultiplikationsimplementierungen?