Daemotron
Well-Known Member
Moin,
ich habe in den letzten Tagen ein wenig mit meiner neuen Pizzaschachtel herumgespielt. Drauf ist ein FreeBSD 7.2-STABLE (amd64) mit ZFS v.13 (aktuell das von gestern ), und drin sind zwei schöne 750GB SATAII-Platten an einem ICH10 (außerdem ein Xeon E3110 und 8 GB RAM).
Die Preisfrage: Was ist nun besser, um aus den beiden Platten einen zpool zu bauen - mirror oder raidz? Um das herauszufinden, hab ich beides mal versucht und jeweils iozone (benchmarks/iozone) drauf losgelassen (atime abgeschaltet). So habe ich iozone aufgerufen:
Dieser Aufruf soll das Lese-/Schreibverhalten eines Datenbankservers abbilden (wobei ich die Record Size an den Default des Dateisystems angepasst habe).
Und so sehen die Ergebnisse aus:
Meiner Einschätzung nach schenken sich die beiden also nichts; von daher habe ich mich erst mal entschieden, bei mirror zu bleiben (beim lesen großer Dateien, etwa per dd, wird bei mirror tatsächlich ein Durchsatz von ~130MB/sec erreicht).
Spaßeshalber habe ich auf demselben Blech mal gmirror und UFS2 mit Soft Updates durchgetestet (selber iozone-Aufruf, nur die Blockgröße habe ich UFS-gerecht auf 4k reduziert). Überraschenderweise schlägt gmirror+UFS ZFS bei den Writes um Längen; auch Reads sind schneller (bis auf random reads, hier behält ZFS die Nase vorn):
Ist ZFS wirklich so viel langsamer, oder habe ich noch irgendetwas übersehen? In Sachen Performance Tuning habe ich leider nicht viel hilfreiches gefunden, was sich mit dem Durchsatz des Dateisystems befasst - kmem-Probleme habe ich dank amd64 und des angepassten kmem-Adressbereichs keine...
ich habe in den letzten Tagen ein wenig mit meiner neuen Pizzaschachtel herumgespielt. Drauf ist ein FreeBSD 7.2-STABLE (amd64) mit ZFS v.13 (aktuell das von gestern ), und drin sind zwei schöne 750GB SATAII-Platten an einem ICH10 (außerdem ein Xeon E3110 und 8 GB RAM).
Die Preisfrage: Was ist nun besser, um aus den beiden Platten einen zpool zu bauen - mirror oder raidz? Um das herauszufinden, hab ich beides mal versucht und jeweils iozone (benchmarks/iozone) drauf losgelassen (atime abgeschaltet). So habe ich iozone aufgerufen:
Code:
iozone -+A1 -i2 -s 1024m -r 8k -o -O
Und so sehen die Ergebnisse aus:
Code:
==> iozone-zfs-mirror.txt <==
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
1048576 8 115 115 206742 207132 149332 99 189352 116 156732 22094 18564 149961 41501
iozone test complete.
==> iozone-zfs-raidz.txt <==
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
1048576 8 115 115 206750 206838 148834 99 191044 116 156311 20237 3126 23207 16348
iozone test complete.
Spaßeshalber habe ich auf demselben Blech mal gmirror und UFS2 mit Soft Updates durchgetestet (selber iozone-Aufruf, nur die Blockgröße habe ich UFS-gerecht auf 4k reduziert). Überraschenderweise schlägt gmirror+UFS ZFS bei den Writes um Längen; auch Reads sind schneller (bis auf random reads, hier behält ZFS die Nase vorn):
Code:
==> iozone-gmirror-split.txt <==
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
1048576 4 1755 2087 391145 390148 140292 233 328843 2271 239136 18243 18217 326735 327317
iozone test complete.