
Ich habe die Laufwerke in einem Raidz-Array mit 4 Laufwerken in einem NAS-Server aktualisiert und das Array wurde automatisch auf die neue Größe erweitert. Beim Testen der Übertragungsraten vom NAS-Server stelle ich jetzt fest, dass die Leistung bei großen Leseübertragungen schlecht ist und kaum über 10 MB/s kommt, obwohl iotop und zpool iostat sehr hohe Werte von bis zu 500 MB/s melden können. Was könnte zu diesem seltsamen Verhalten führen? Da ich das Array aktualisiert habe, kann ich auch beobachten, dass es dieselbe Leistung erbringt, egal ob 4 Geräte online sind oder nur 3.
Der Server ist mit einer einzigen Gigabit-Netzwerkverbindung verbunden und kann diese mit einem einzigen Laufwerk über ext4 sättigen.
Antwort1
Ich habe festgestellt, dass ich beim Experimentieren mit Cache-Einstellungen, um zu sehen, was passieren würde, den primären Cache ausgeschaltet gelassen habe, was dazu führen kann, dass der reale IO viel größer ist als der logische IO aufgrund von
[Anwendung] liest eine Datei, ruft 4 KB (Seitengröße?) Daten ab und verarbeitet sie, dann liest es die nächsten 4 KB usw.
ZFS kann jedoch nicht nur 4 KB lesen. Standardmäßig liest es 128 KB (Datensatzgröße). Da kein Cache vorhanden ist (Sie haben ihn ausgeschaltet), werden die restlichen Daten verworfen.
128k / 4k = 32
32 x 2,44 GB = 78,08 GB