Ich habe eine 10-Gbit-Verbindung zwischen zwei Hosts getestet, um eine 10-GB-Datei von Host1 lesen und mit Netcat auf Host2 schreiben zu können, wobei die Geschwindigkeit 410 MB / s betrug.
Wenn ich ZFS erneut mit Netcat über dieselbe dedizierte 10-Gbit-Verbindung sende / empfange, erhalte ich nur 70 MB / s. Der Schnappschuss betrug 2,5 TB mit 15 Millionen Dateien.
Frage
Was könnte der Grund für diese Verlangsamung sein? Ist der Engpass, dass das Rollback eines Snapshots mit so vielen Dateien viel Zeit in Anspruch nimmt, oder hat die Anzahl der Dateien keinen Einfluss auf die ZFS-Rollback-Geschwindigkeit?
Aktualisieren
Der 10-GB-Dateiübertragungstest mit 410 MB / s simuliert vermutlich ein ZFS-Senden / Empfangen mit Rollback. Mit dieser Annahme bin ich sehr überrascht, dass ich so unterschiedliche Geschwindigkeiten sehe. Ich verwende die Geschwindigkeit für den Vergleich zwischen den beiden Tests, sodass ich keine 2,5-TB-Datei mit zufälligen Daten generieren muss.
Ich verstehe also nicht, warum "Datei von Host1 lesen, mit Netcat übertragen, Datei auf Host2 schreiben" viel schneller ist als "ZFS-Snapshot von Host1 senden, mit Netcat übertragen, ZFS empfangen / Rollback auf Host2".
Vielleicht wäre eine andere Möglichkeit, dasselbe zu fragen ,:?
Wenn ich zwei gleich große 2,5-TB-Snapshots habe, wobei Snapshot1 1 Datei und Snapshot2 15 Millionen Dateien enthält. Wird die Zeit für zfs receive
beide gleich sein? Oder wird einer schneller sein als der andere?