RAIDZ1-Leistung im Vergleich zu herkömmlichem RAID5
Warum bekomme ich weniger Leseleistung als Schreibleistung? Sollte das Schreiben nicht mit der Geschwindigkeit von 3 Discs konvergieren und mit der Geschwindigkeit von 4 Discs wie einem RAID5 lesen?
Siehe diesen Thread auf ServerFault :
RAIDZ mit einem Paritätslaufwerk bietet die IOPS-Leistung eines einzelnen Datenträgers, die Bandbreite eines einzelnen Datenträgers ist jedoch N-1-fach.
Und dieser Kommentar:
Ich habe viel Erfahrung damit und kann Ihnen bestätigen, dass RAIDZ in den meisten Situationen NICHT die gleiche Anzahl von Festplatten übertrifft, die in ein herkömmliches RAID5 / 6-äquivalentes Array geworfen werden.
Ihre Festplatten können etwa 145 MB / s sequentiell aushalten, daher sollten Ihre theoretischen Ergebnisse 435 MB / s betragen. Ich würde sagen, das passt ziemlich gut zu Ihren Ergebnissen.
L2ARC-Cache für sequentielle Lesevorgänge
Warum tritt der l2arc nicht ein? Nach mehreren Lesevorgängen ohne das Lesen anderer Daten hätte ich eine Leseleistung erwartet, die den 1 GB / s des SSD RAID0 entspricht.
Schauen Sie sich diese Mailingliste an :
Erfüllt ARC die Caching-Anforderungen?
und
Beitrag von Marty Scholes Sind einige der Lesungen sequentiell? Sequentielle Lesevorgänge gehen nicht zu L2ARC.
Ihre Hauptgründe sind also:
- Ihre (zufällige) Last wird bereits von ARC geliefert und L2ARC ist nicht erforderlich (da Ihre Daten immer gleich waren und vollständig in ARC verbleiben können). Idee dahinter: ARC ist viel schneller als L2ARC (RAM vs. SSD). Daher ist die erste Wahl für Lesevorgänge immer ARC. Sie benötigen L2ARC nur, weil Ihre aktiven Daten zu groß für den Arbeitsspeicher sind. Der wahlfreie Zugriff auf die Festplatte ist jedoch zu langsam Scheiben
- Ihr Benchmark war sequenziell und wurde daher nicht von L2ARC geliefert. Idee dahinter: Durch sequentielle Lesevorgänge wird der Cache-Speicher vergiftet, da ein einzelner großer Dateizugriff den Cache-Speicher vollständig ausfüllt und Millionen kleiner Blöcke von anderen Benutzern entfernt (ZFS ist für gleichzeitigen wahlfreien Zugriff vieler Benutzer optimiert), ohne dass dies Auswirkungen auf die Cache-Funktion hat Ihre Geschwindigkeit beim ersten Lesen. Beim zweiten Lesen würde es schneller gehen, aber normalerweise werden große Dateien nicht zweimal gelesen. Vielleicht können Sie das Verhalten mit ZFS-Tunern ändern.
Verschiedene Fragen
Sollte ich einen Teil der SSDs für ZIL verwenden?
Ein separates SLOG-Gerät hilft nur für zufällig synchronisierte Schreibvorgänge, sonst nichts. Um dies zu testen, ist es recht einfach - setzen Sie Ihre Benchmark-Dateisystemeigenschaft sync
auf disabled
: zfs set sync=disabled pool/fs
und dann erneut Benchmark. Wenn Ihre Leistung jetzt plötzlich großartig ist, profitieren Sie davon. Wenn sich nicht viel ändert, werden Sie es nicht tun.
PS: Warum sieht der Cache wie ein Pool namens Cache aus, nicht etwas, das zu den Pooldaten gehört?
Ich denke, das ist so, weil diese zusätzlichen Geräte (Ersatzteile, Caches, Slog-Geräte) auch aus mehreren vdevs bestehen können. Wenn Sie beispielsweise über ein gespiegeltes Slog-Gerät verfügen, haben Sie die gleichen 3 Stufen wie Ihre normale Festplatte (log - mirror - disk1 / disk2).