Ich habe eine verwandte Frage zu diesem Problem, aber sie wurde zu kompliziert und zu groß. Deshalb habe ich beschlossen, das Problem in NFS- und lokale Probleme aufzuteilen. Ich habe auch versucht, dies auf der zfs-Diskussion-Mailingliste zu erfragen, ohne großen Erfolg.
Langsames Kopieren zwischen NFS / CIFS-Verzeichnissen auf demselben Server
Überblick: Wie ich eingerichtet bin und was ich erwarte
- Ich habe einen ZFS-Pool mit 4 Festplatten. 2 TB ROT konfiguriert als 2 gestreifte Spiegel (RAID 10). Unter Linux zfsonlinux. Es gibt keine Cache- oder Protokollgeräte.
- Die Daten werden spiegelübergreifend verteilt (wichtig für ZFS).
- Jede Festplatte kann parallel mit 147 MB / s (roh w / dd) lesen, was einen kombinierten Durchsatz von 588 MB / s ergibt.
- Ich erwarte etwa 115 MB / s Schreiben, 138 MB / Sek. Lesen und 50 MB / Sek. Umschreiben von sequentiellen Daten von jeder Festplatte, basierend auf Benchmarks einer ähnlichen 4 TB RED-Festplatte. Ich erwarte nicht weniger als 100 MB / s Lesen oder Schreiben, da jede Festplatte dies heutzutage kann.
- Ich dachte, ich würde eine 100% ige E / A-Auslastung auf allen 4 Festplatten sehen, wenn unter Last sequentielle Daten gelesen oder geschrieben werden. Und dass die Festplatten bei 100% Auslastung mehr als 100 MB / s ausgeben würden.
- Ich dachte, der Pool würde mir ungefähr 2x Schreib-, 2x Umschreib- und 4x Leseleistung über eine einzelne Festplatte bieten - irre ich mich?
- NEU Ich dachte, ein ext4 zvol im selben Pool würde ungefähr die gleiche Geschwindigkeit wie ZFS haben
Was ich eigentlich bekomme
Ich finde, dass die Leseleistung des Pools bei weitem nicht so hoch ist, wie ich erwartet hatte
Bonnie ++ Benchmark auf Pool von vor ein paar Tagen
Version 1.97 ------ Sequenzielle Ausgabe ------ - Sequenzielle Eingabe- - Zufällige- Parallelität 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Maschinengröße K / s% CP K / s% CP K / s% CP K / s% CP K / s% CP / s% CP igor 63G 99 99 232132 47 118787 27 336 97 257072 22 92.7 6
bonnie ++ auf einem einzelnen 4 TB RED-Laufwerk allein in einem Zpool
Version 1.97 ------ Sequenzielle Ausgabe ------ - Sequenzielle Eingabe- - Zufällige- Parallelität 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Maschinengröße K / s% CP K / s% CP K / s% CP K / s% CP K / s% CP / s% CP igor 63G 101 99 115288 30 49781 14 326 97 138250 13 111.6 8
Demnach sind die Lese- und Umschreibgeschwindigkeiten basierend auf den Ergebnissen eines einzelnen 4-TB-RED-Laufwerks angemessen (sie sind doppelt). Die erwartete Lesegeschwindigkeit hätte jedoch etwa 550 MB / s betragen (4x die Geschwindigkeit des 4-TB-Laufwerks), und ich würde zumindest auf etwa 400 MB / s hoffen. Stattdessen sehe ich ungefähr 260 MB / s
bonnie ++ auf dem Pool von gerade jetzt, während die folgenden Informationen sammeln. Nicht ganz das Gleiche wie zuvor, und nichts hat sich geändert.
Version 1.97 ------ Sequenzielle Ausgabe ------ - Sequenzielle Eingabe- - Zufällige- Parallelität 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Maschinengröße K / s% CP K / s% CP K / s% CP K / s% CP K / s% CP / s% CP igor 63G 103 99 207518 43 108810 24 342 98 302350 26 256,4 18
zpool iostat beim schreiben. Scheint mir in Ordnung zu sein.
Bandbreite des Kapazitätsbetriebs Pool zuweisen frei lesen schreiben lesen schreiben ---------------------------------------- ----- - ---- ----- ----- ----- ----- pool2 1.23T 2.39T 0 1.89K 1.60K 238M Spiegel 631G 1.20T 0 979 1.60K 120M ata-WDC_WD20EFRX-68AX9N0_WD-WMC300004469 - - 0 1007 1,60 K 124M ata-WDC_WD20EFRX-68EUZN0_WD-WCC4MLK57MVX - - 0 975 0 120M Spiegel 631G 1.20T 0 953 0 117M ata-WDC_WD20EFRX-68AX9N0_WD-WCC1T0429536 - - 0 1,01 K 0 128M ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M0VYKFCE - - 0 953 0 117M
zpool iostat beim umschreiben. Scheint mir in Ordnung zu sein, denke ich .
Bandbreite des Kapazitätsbetriebs Pool zuweisen frei lesen schreiben lesen schreiben ---------------------------------------- ----- - ---- ----- ----- ----- ----- pool2 1.27T 2.35T 1015 923 125M 101M Spiegel 651G 1.18T 505 465 62.2M 51.8M ata-WDC_WD20EFRX-68AX9N0_WD-WMC300004469 - - 198 438 24,4 M 51,7 M. ata-WDC_WD20EFRX-68EUZN0_WD-WCC4MLK57MVX - - 306 384 37,8M 45,1M Spiegel 651G 1.18T 510 457 63.2M 49.6M ata-WDC_WD20EFRX-68AX9N0_WD-WCC1T0429536 - - 304 371 37,8 M 43,3 M. ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M0VYKFCE - - 206 423 25,5 M 49,6 M.
Hier frage ich mich, was los ist
zpool iostat beim lesen
Bandbreite des Kapazitätsbetriebs Pool zuweisen frei lesen schreiben lesen schreiben ---------------------------------------- ----- - ---- ----- ----- ----- ----- pool2 1.27T 2.35T 2.68K 32 339M 141K Spiegel 651G 1.18T 1.34K 20 169M 90.0K ata-WDC_WD20EFRX-68AX9N0_WD-WMC300004469 - - 748 9 92,5 M 96,8 K. ata-WDC_WD20EFRX-68EUZN0_WD-WCC4MLK57MVX - - 623 10 76,8M 96,8K Spiegel 651G 1.18T 1.34K 11 170M 50.8K ata-WDC_WD20EFRX-68AX9N0_WD-WCC1T0429536 - - 774 5 95,7 M 56,0 K. ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M0VYKFCE - - 599 6 74,0M 56,0K
iostat -x während des gleichen Lesevorgangs . Beachten Sie, dass IO% nicht bei 100% liegt.
Gerät: rrqm / s wrqm / sr / sw / s rkB / s wkB / s avgrq-sz avgqu-sz warten auf r_await w_await svctm% util sdb 0,60 0,00 661,30 6,00 83652,80 49,20 250,87 2,32 3,47 3,46 4,87 1,20 79,76 sdd 0,80 0,00 735,40 5,30 93273,20 49,20 251,98 2,60 3,51 3,51 4,15 1,20 89,04 sdf 0,50 0,00 656,70 3,80 83196,80 31,20 252,02 2,23 3,38 3,36 6,63 1,17 77,12 sda 0,70 0,00 738,30 3,30 93572,00 31,20 252,44 2,45 3,33 3,31 7,03 1,14 84,24
Einstellungen für zpool und Testdatensatz:
- atime ist aus
- Komprimierung ist ausgeschaltet
- ashift ist 0 (autodetect - mein Verständnis war, dass dies in Ordnung war)
- Laut zdb sind alle Festplatten Ashift = 12
- Modul - Optionen zfs zvol_threads = 32 zfs_arc_max = 17179869184
- Sync = Standard
Bearbeiten - 30. Oktober 2015
Ich habe noch ein paar Tests gemacht
- Datensatz bonnie ++ w / recordsize = 1M = 226MB schreiben, 392MB viel besser lesen
- Datensatz dd w / Datensatzgröße = 1M = 260MB schreiben, 392MB viel besser lesen
- zvol w / ext4 dd bs = 1M = 128MB schreiben, 107MB lesen warum so langsam?
- Datensatz 2 Prozessess parallel = 227 MB Schreiben, 396 MB Lesen
- dd direct io unterscheidet sich nicht im Datensatz und im zvol
Ich bin viel zufriedener mit der Leistung mit der erhöhten Rekordgröße. Fast jede Datei im Pool ist weit über 1 MB groß. Also lasse ich es so. Die Festplatten werden immer noch nicht zu 100% ausgelastet, weshalb ich mich frage, ob sie noch viel schneller sein könnten. Und jetzt frage ich mich, warum die zvol-Leistung so mies ist, da ich das (leicht) benutze.
Gerne gebe ich die in den Kommentaren / Antworten angeforderten Informationen weiter. In meiner anderen Frage sind auch unzählige Informationen enthalten: Langsames Kopieren zwischen NFS / CIFS-Verzeichnissen auf demselben Server
Ich bin mir völlig bewusst, dass ich etwas einfach nicht verstehe und dass dies möglicherweise überhaupt kein Problem ist. Danke im Voraus.
Um es klar zu machen, lautet die Frage: Warum ist der ZFS-Pool nicht so schnell wie erwartet? Und vielleicht stimmt noch etwas nicht?
dd
Sie, um zu sehen, welche Art von Leistung Sie erhalten. Möglicherweise möchten Sie auch Direct IO ausprobieren, wenn Sie Streaming-Geschwindigkeiten erreichen, bei denen die doppelte Pufferung durch Caching die Leistung beeinträchtigen kann. FWIW, 3/4 der theoretischen Gesamtleseleistung von 4 Festplatten ist gut.
%util
Zahlen erklären .