Von dem, was Sie zur Komprimierung angesprochen haben, gehe ich davon aus, dass alle Speichergrößen / Geschwindigkeiten, die Sie beschrieben haben, unkomprimiert waren. Wenn dies nicht der Fall ist, können die Übertragungszeiten um einen Faktor verlängert werden, der dem durchschnittlichen Komprimierungsverhältnis entspricht (nicht jedoch, wenn der Plattenzugriff der Engpass ist, da die Dekomprimierung / Komprimierung nach dem Lesen von der Festplatte in zfs send
und vor dem Schreiben auf die Festplatte erfolgt zfs receive
).
Basierend auf den bisher gesammelten Informationen klingt dies nach Engpässen bei der Festplattenbandbreite und nicht bei der Netzwerkverbindung. Sie haben erwähnt, dass jedes System mit ~ 500 MB / s lesen / schreiben kann. Daher ist Ihre Übertragungszeit für 35 TB im besten Fall etwa 20 Stunden (etwa 2,5-mal langsamer als nur das 10-Gbit / s-Netzwerk). Aber aufgrund Ihres Spiegelungs-Setups bin ich überrascht, dass Lesen und Schreiben denselben Durchsatz erzielen würden. Sind Sie sich dessen sicher? Auf dem Sendesystem müssen Sie nur von einer Platte lesen (um Lesevorgänge auf drei Platten parallelisieren zu können), auf dem Empfangssystem müssen Sie jedoch auf alle drei Festplatten schreiben (Sie sind also an den Durchsatz der langsamsten Festplatte gebunden.) zu einer bestimmten Zeit). Um den Schreibdurchsatz auf der Empfangsseite zu testen, können Sie ausführen dd if=/dev/urandom of=some_file_in_pool bs=1M count=1024 conv=fdatasync
.
Da Sie sagten, dass die empfangenden Festplatten zu 100% ausgelastet sind, schätze ich, dass die Schreibbandbreite von 500 MB / s nicht erreicht wird. Dies kann entweder darauf zurückzuführen sein, dass das tatsächliche Schreiblimit niedriger ist als das (der dd
Befehl sollte dies bestätigen), oder es könnte sein, dass das System während des Empfangs Metadaten lesen muss, was Ihre schöne Schreibarbeitslast mit großer IO beeinträchtigt durch das Hinzufügen einer Reihe von Disketten sucht die Mischung. Sie sollten in der Lage sein, die zweite Hypothese eingehender zu untersuchen, indem Sie DTrace verwenden, um zu ermitteln, was der io
Anbieter für Ihre Lese- / Schreibgröße hält.