Ich habe es geschafft, Geschwindigkeiten zu erreichen, die sehr nahe an den Zahlen liegen, die ich erwartet hatte.
Ich suchte nach 400 MB/s und verwaltete 392 MB/s . Also sage ich, das Problem ist gelöst. Mit dem späteren Hinzufügen eines Cache-Geräts schaffte ich 458 MB /sec gelesen (gecacht, glaube ich).
1. Dies wurde zunächst einfach durch eine Vergrößerung des ZFS-Datensatzes recordsize
erreicht Wert auf 1M
zfs set recordsize=1M pool2/test
Ich glaube, diese Änderung führt nur zu weniger Festplattenaktivität und damit zu effizienteren großen synchronen Lese- und Schreibvorgängen. Genau das, wonach ich gefragt habe.
Ergebnisse nach der Änderung
- bonnie++ =226 MB Schreiben, 392 MB Lesen
- dd =260 MB schreiben, 392 MB lesen
- 2 Prozesse parallel =227 MB schreiben, 396 MB lesen
2. Ich habe es sogar noch besser geschafft, als ich ein Cache-Gerät (120 GB SSD) hinzugefügt habe. Das Schreiben ist etwas langsamer, ich bin mir nicht sicher warum.
Version 1.97 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
igor 63G 208325 48 129343 28 458513 35 326.8 16
Der Trick mit dem Cache-Gerät bestand darin, l2arc_noprefetch=0
zu setzen in /etc/modprobe.d/zfs.conf . Es ermöglicht ZFS, Streaming-/sequenzielle Daten zwischenzuspeichern. Tun Sie dies nur, wenn Ihr Cache-Gerät schneller ist als Ihr Array, wie meines.
Nachdem ich von der Änderung der Datensatzgröße in meinem Datensatz profitiert hatte, dachte ich, dass dies ein ähnlicher Weg sein könnte, um mit einer schlechten Zvol-Leistung umzugehen.
Ich bin auf mehrere Leute gestoßen, die erwähnt haben, dass sie mit volblocksize=64k
eine gute Leistung erzielt haben , also habe ich es versucht. Kein Glück.
zfs create -b 64k -V 120G pool/volume
Aber dann habe ich gelesen, dass ext4 (das Dateisystem, mit dem ich getestet habe) Optionen für RAID wie stride
unterstützt und stripe-width
, die ich noch nie benutzt habe. Also habe ich diese Seite verwendet, um die erforderlichen Einstellungen zu berechnen:https://busybox.net/~aldot/mkfs_stride.html und das zvol erneut formatiert.
mkfs.ext3 -b 4096 -E stride=16,stripe-width=32 /dev/zvol/pool/volume
Ich habe bonnie++
ausgeführt einen einfachen Benchmark zu machen und die Ergebnisse waren ausgezeichnet. Ich habe die Ergebnisse leider nicht bei mir, aber sie waren mindestens 5-6x schneller für Schreibvorgänge, soweit ich mich erinnere. Ich werde diese Antwort erneut aktualisieren, wenn ich erneut einen Benchmark durchführe.