Hi,
ich habe ein kleines Raid5 System und wenn ich innerhalb des Raid daten kopiere oder verschiebe dann habe ich ca. 50-70mb/s. Das gleiche Raidsystem hatte ich auch unter Opensolaris mit ZFS am laufen jedoch hatte ich da Datenraten von bis zu 350mb/s.
Warum?
Weil ZFS zuerst den ZFS-Cache(RAM) voll schreibt und dann vollständig leert und ggf. wieder von vorne. Ich hatte ca. 6gb Cache. Bei dem gewöhnlichen kopieren wird jedoch nur eine viel kleinere Menge an Daten zwischen gespeichert und der Festplattenkopf wechselt viel öfters die Lese-Schreibposition. Was zu einer deutlich schlechteren Performance führt.
Ich habe bei an meinem NB mal folgendes getestet.
1. Kopieren von Daten auf eine Ramdisk. 2. Wenn alle Daten angekommen zum Ziel Ordner verschieben. Alles hat 40 Sekunden gedauert.
Normales kopieren hat 54 Sekunden gedauert.
Als Dateisystem habe ich ext4 benutzt. Man sieht also das trotz der "delayed write features" und dem Linux Cache noch mit der oben genannter Methode noch 20% oder mehr an Performance herauszukitzeln ist. Außerdem funktioniert es mit jedem Dateisystem.
Leider funktioniert mein kleines Beispiel nur wenn die zukopierende Menge an Daten kleiner als der Cache ist. Aber vielleicht kann man das ja noch erweitern wenn Interesse da ist.
Hier erstmal der die Befehle die ich benutzt habe.
fürs erstellen
1 2 | sudo mount -t tmpfs -o size=3G tmpfs ramdisk/ sudo chown $USER:$USER ramdisk/ |
fürs kopieren
1 2 | cp $1 ramdisk/ mv ramdisk/ $2 |
und fürs verschieben einfach ans kopieren
1 | rm $1 -r |
dranhängen
fürs ramdisk löschen einfach
1 | sudo umount ramdisk/ |
Außerdem wären vielleicht einige Benchmarks hilfreich. Jedoch sollte der Recher zwischen dem kopieren neugestartet werden um ausschließen zukönnen das die Zeiten durch Linux-Caching verfälscht werden.
LG TT