Schlechte ZFS RaidZ performance

[AlphaRC]Eraser

Lt. Commander
Registriert
Sep. 2002
Beiträge
1.133
System:
  • Intel Pentium G9300
  • MSI H110I Pro
  • ADATA SX7000 M.2 128 GB (Ubuntu 20.10)
  • Samsung 2x4 GB DDR4
  • RaidZ: 4x WD 3TB SATA HDDs
  • ZFS Version: 0.8.4.

Ich habe vor einigen Tagen ein Hardware Raid5 im gleichen System durch ein ZFS RaidZ ersetzt. Theoretisch laeuft erstmal alles, allerdings ist die performance unterirdisch.
Von gewohnten 400 MB/s Schreib- und 120 MB/s Lesegeschwindigkeit im Raid5 (verschluesselt) bin ich jetzt bei 45-50MB/s Schreibgeschwindigkeit. Gemessen mit einem Kopiervorgang von ext. USB 3.0 Platte auf den Pool. Dabei laeuft ein core auf 100% und der zweite bei 50%.
Scheinbar ist der G9300 das Limit, allerdings frage ich mich ob ich nicht doch irgendwo ein Fehler in der Konfig/Dataset Parameter gemacht habe.

Wie plausibel ist die performance fuer euch?
Kann ich den ZFS Pool noch irgendwie "tunen" damit ich komfortabel meine GB NIC auslasten kann?

zpool create -f -o ashift=12 mypool raidz /dev/sda /dev/sdb /dev/sdc /dev/sdd
zfs create -o encryption=aes-256-gcm -o keylocation=prompt -o keyformat=passphrase filespool/encrypted
 
Welche Western Digital HDDs nutzt du genau? Bitte die genaue Typenbezeichnung. Mein erster Gedanke wäre: SMR- statt CMR-Platten gekauft. Dann ist das Ergebnis erwartbar (und die Datenrate wird in Zukunft tendenziell noch schlechter werden) da ZFS wohl besonders allergisch auf SMR reagiert. Hier gäbe es Tuning-Tips für diesen Fall: https://www.truenas.com/community/threads/update-wd-red-smr-drive-compatibility-with-zfs.88413/

Ansonsten: Der Raid5 lief bei dir auch mit Ubuntu? Wie war der konfiguriert? mdraid? Mit welchem Dateisystem im Level drüber? Und wie war die Verschlüsselung

/Edit2: Wenn bei dir z.B. Linux mit OpenZFS läuft, könntest du z.B. versuchen auf ein neueres Release von OpenZFS zu wechseln. Mit Release 2.0 gab es viele neue Features inkl. Performanceverbesserungen beim Verschlüsseln etc.
Anscheinend hat erst Ubuntu 21.04 entsprechende Pakete mit OpenZFS 2.x. Da der Support von 20.10 im Juli ausläuft, lohnt sich vllt jetzt ein Distributionsupgrade?!
 
Zuletzt bearbeitet:
ZFS benötigt nun mal Hardware Performance, viel RAM und eine schnelle CPU, zudem sind deine Platten noch verschlüsselt. Da wird dein Pentium G9300 in die Knie gehen. 8GB Ram ist auch recht dürftig.
 
Kannst du verifizieren, dass AES-NI genutzt wird? Nicht, dass die Verschlüsselung "in software" passiert, was natürlich ne Menge CPU-Leistung fressen würde.
Hast du auch mal auf anderem Weg Daten kopiert? Nicht, dass es eher ein USB Problem ist.
Skudrinka schrieb:
ZFS benötigt nun mal Hardware Performance, viel RAM und eine schnelle CPU
Im Grunde also ähnlich zu seinem vorherigen Raid5 Setup (sofern da nicht nen echter hardware controller im Spiel war). Dieser massive Einbruch an Leistung lässt sich nicht mit "ist halt ZFS" begründen. Vielleicht erfordert sein konkretes Einsatzszenario aber tatsächlich etwas mehr finetuning.
Wirklich viel RAM braucht ZFS erst mit Deduplication. Vorher ist die RAM Nutzung von ZFS einfach nur ein normaler Caching-Mechanismus, wie ihn auch jedes andere moderne Dateisystem nutzt. Solange RAM frei ist, wird er als Cache benutzt. Braucht wer anders den RAM, wird freigegeben.
 
Die jetzige Schreibleistung deckt sich mit meiner. Schau mal bei den Einstellungen für Sync. Sieht so aus, dass der da immer auf etwas wartet. Da du geschrieben hast, dass das vorher auch mit Verschlüsselung funktioniert hat, würde ich den Prozessor dort ausschließen. Oder haste bei der Verschlüsselung die Profile gewechselt und eins erwischt, was der Prozessor nicht in Hardware unterstützt?
 
Wie schreibst du auf den Pool? SMB? iscsi? NFS? CIFS?

kopier doch mal lokal von einem sehr flinken USB stick oder von derboot ssd auf den pool. Oder Schreib direkt mit rsync eine schoen grosse datei auf den Pool. Dann wissen wir schonmal ob das Problem hier liegen koennte.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: snaxilian
achso. nfs. Hab das vergessen zu erwähnen :D SMB ist dann aber das gleiche Problem.
 
  • Gefällt mir
Reaktionen: madmax2010
Erste Vermutung: SMR Disks verbaut/erwischt.
Zweite Vermutung: Ist beim Dataset ggf. sync=always gesetzt? hier hat mal jemand ein paar Tests gemacht: https://www.hardwareluxx.de/community/threads/bescheidene-nfs-performance-als-grundlage-für-virtualisierung.1267952/#post-27436900
Dritte Vermutung: Encryption läuft nicht per AES-NI sondern "in Software"...

Dann bin ich scheinbar der erste im Thread der bemerkt: Einen Pentium G9300 gibt es nicht. Es gibt einen i3-9300 und es gibt ein Celeron G3900 naja und in grauer Vorzeit gab es einen C2D T9300^^
Es gibt jedoch keinen Pentium G3900 und auch keinen Pentium G9300. Also bitte mal die korrekte CPU liefern.

@Skudrinka Sorry aber deine Aussagen basieren auf Fakten und Erfahrungen oder vermutlich nur mal irgendwo gelesen, dass ZFS viel Leistung braucht und keine eigene Erfahrung, oder?
Hier werkelt ein Pentium G4600 (2C4T 3,60 GHz) mit 32GB Ram mit Freenas, einem raidz und einem raidz2 Pool und 3 VMs und die CPU ist nur ausgelastet wenn gerade ein Scrub läuft, sonst eher so bei ~20% Prozent, v.a. durch die VMs und auch beim RAM liegen aktuell 24GB brach herum. Das System würde also auch mit 16 GB vollkommen ausreichend laufen und hätte noch einiges frei...
Ja, wenn man mit ZFS einen Storage für dutzende parallele User oder als shared storage für viele Nodes mit VMs betreiben will dann sind entsprechende Ressourcen bei CPU, RAM, NICs und den Laufwerken absolut sinnvoll und notwendig und man sollte das System dann mit noch mehr RAM und SSDs für Write-, Read- und Metadata Caches bewerfen.
Beim NAS zuhause sind die Anforderungen deutlich geringer ohne das man Probleme läuft mit ZFS.

Mit ZFS v0.8.4 und funktionierendem AES-NI sollte deutlich mehr Geschwindigkeit drin sein, siehe beispielsweise hier: https://www.medo64.com/2020/11/testing-native-zfs-encryption-speed-20-10/
Es gilt daher wie bei jedem Problem: Fehler eingrenzen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: whats4, AGB-Leser und madmax2010
Die Deduplizierung ist das, was am meisten Arbeitsspeicher in unserem Falle frisst. Abgeschaltet und es würden auch vier Gigabyte reichen
 
  • Gefällt mir
Reaktionen: foo_1337 und snaxilian
Servus, Hammer wie viele Antworten in so kurzer Zeit kommen!

In der Tat habe ich mich bei der CPU vertan. Es ist ein Celeron G9300 :freak:
Vorher hatte ich ein 3Ware Hardware RaidController. Klar dass das in Software nur bedingt vergleichbar ist. Aber einen Faktor 10 sollte es nicht sein. Vorher lief ja auch eine AES Verschluesselung via Veracrypt.

Den gleichen blog wie snaxilian verlinkt hat, hatte ich vorher auch gelesen und daher eben das Gefuehl das irgendwas nicht stimmen kann.

HDDs: Es sind WD Red WD30EFRX die nach meiner Recherche good old CMD drives sind.
Sync parameter: Steht auf "standard" was auch immer das heisst?!
Beim kopieren eines grossen image zwischen der SSD und dem Pool erhalte ich die gleiche Schreibperformance. Leseperformance ist besser ca. 85MB/s aber beide cores am limit.

Wie sehe ich ob das AES in hardware laeuft?
EDIT: Ok, also "grep -m1 -o aes /proc/cpuinfo" spuckt ein "aes" aus, daher scheint mein Ubuntu das ja korrekt initialisiert zu haben.
 
Zuletzt bearbeitet:
ja. hast du ddup oder compression eingeschaltet?
Welcher Prozess macht die cpu dicht?
Schau auch mal bitte auf die Load

[AlphaRC]Eraser schrieb:
Es ist ein Celeron G9300
Jetzt noch G3900 und wir haben es :D
 
Zuletzt bearbeitet:
ddup & compression sind deaktiviert.
Top sagt z_wr_iss verursacht die CPU Last.

OMG ja, sorry fuer die typos bei der CPU :p
 
  • Gefällt mir
Reaktionen: madmax2010
Ey, ich bin der letzte der sich hier ueber typos zu beschwerenn hat :D
Wie auch immer:
Das ist schon Interessant.
Lies mal die 2:
https://github.com/openzfs/zfs/issues/4834
https://forum.proxmox.com/threads/urgent-high-cpu-usage-in-proxmox-ve-4-with-zfs.24371/
HAst du zufaellig Zeit und Lust, mal irgeendwas auf FreeBSD basis zu booten (freenas bietet sich an), den pool dort zu importieren, einen share einzurichten und dannn mal zu schauen wie die Performance ist? Nicht das wir hier an einem ZFS on Linux bug haengen

Ich stimme @snaxilian Absolut zu. Deine CPU kann einfach bei den Rahmenbedingungenn nicht so viel Last haben und das muss schneller sein. Ich habe ZFS jahre lang mit einer deutlich schwaecheren CPU im HP N54L G7, 32TB Raw Storage in 4 HDDs und einer Mellanox Connect-X 2 10G Netzwerkkarte betrieben und dabei knapp 300mb/s erreicht.
 
Ein ganz bisschen offtopic - aber mich würde im Zuge dessen mal interessieren, ob es nicht ein Tool oder ein Script o.ä. gibt, welches auch bei einer so komplexen Geschichte wie ZFS ermöglicht, die Schwachstellen bzw. den Flaschenhals aufzuspüren...
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Marflowah
@madmax2010 klingt schon mal prima, Danke für diesen Hinweis!

Persönlich hab ich derzeit (noch) keine Sorgen, Truenas hat hier offenbar gute Standardwerte voreingestellt, die die Hardware so gut es geht auslasten:
Ich nutze Raid-Z2 auf 6 WD Reds (je 4 TB) auf einem Intel i3-9100 und 64GB RAM, und greife manchmal mit NFS, aber meist mit CIFS/SMB darauf zu.

Konfigurieren musste ich bislang nicht wirklich etwas aus Leistungsgründen. Aber optimieren kann man immer und man lernt was dabei.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: snaxilian und Marflowah
Danke fuer die links! Die 2 links habe ich mir durchlgelesen, aber das klingt nach einem etwas anderem Verhalten bei dem der speed nicht so konstant ist und nach einer gewissen zeit echt krass einbricht. Sehr mysterioes...

Ich hab jetzt nicht wirklich Zeit da nochmal komplett nen anderes OS zu testen :/
Frage mich mittlerweile ob ich nicht doch einfach den 3Ware 9650se-4lpml anschliesse und mit meinem alten hardware Raid setup weiterfahre. Wobei ich ein ZFS mit weniger hardware halt schon sexy finden wuerde...
 
Ich hab n G4500 hier und eine Platte verschlüsselt. Das Teil langweilt sich halt. Da stimmt wohl was anderes nicht. Allerdings, muss ich dazu sagen, läuft hier TrueNAS (Nachfolger von FreeNAS). Weil zfs ja urspünglich für BSD war. Ansonsten hätte ich auch lieber Linux gehabt
 
[AlphaRC]Eraser schrieb:
nicht wirklich Zeit da nochmal komplett nen anderes OS zu testen
Sorry aber dann hast du kein Problem und der Thread kann geschlossen werden. Die testweise Installation von TrueNAS geht schneller als die Installation von Win 10.
ZFS bietet halt gewisse Vorteile, die ein HW-Raidcontroller nicht bietet. Wenn du diese Vorteile nicht nutzen willst oder es dir egal ist, kannst auch die alte Lösung weiter verwenden. ZFS ist eine tolle Lösung, keine Frage aber es hat auch seine Tücken und Fallstricke wobei die mit deinem aktuellen Problem eher weniger zu tun haben dürften.

@AGB-Leser TrueNAS nutzt seit Version 12.0-U1 ebenfalls als Basis OpenZFS und damit die gleiche Codebasis wie Linux (mit je nach Distribution unterschiedlichen Releases...).
AGB-Leser schrieb:
Weil zfs ja urspünglich für BSD war
Nein, einfach nur nein. ZFS wurde entwickelt von Sun Microsystems für deren OS Solaris. Anschließend fand eine Portierung auf *BSD statt. Lässt sich aber auch bei Wikipedia etc. nachlesen.
 
  • Gefällt mir
Reaktionen: madmax2010
Zurück
Oben