NVMe SSDs langsam

Cornelius

New Member
Feb 15, 2024
19
0
1
Hallo,

ich habe Proxmox (v8.1.4) auf einer SATA-SSDs installiert und einen Raid 5 mit 3x 4TB NVMe SSDs über Proxmox (ZFS) erstellt. Nun teste ich gerade das neue System, unter anderem auch die Schreib- und Leseraten des Raid 5 auf einer neuen VM. Hier erreiche ich allerdings relativ geringe Werte (400 MB/s), laut Datenblatt wären theoretisch 7.000 MB/s pro SSD möglich.

Verbaut ist folgendes:
- AMD Epyc 7551p
- H11SSL-NC Rev 2.0
- 256GB DDR4-2666
- 3x Innovation IT PerformanceY GEN4 4TB auf Asus Hyper M.2 X16 Card V2

Und wenn ich schon diesen Thread erstelle, habe ich noch zwei weitere Fragen:
- Wäre es eine Überlegung wert, etwas anderes als ZFS zu nutzen? Scheinbar benötigt man dafür relativ viel Arbeitsspeicher.
- Ist es Sinnvoll beim erstellen von ZFS die Kompression zu aktivieren?

Viele Grüße,
Cornelius
 

Attachments

  • 1341105-4330a5a28f13467b5a8e2b157ffda483.png
    1341105-4330a5a28f13467b5a8e2b157ffda483.png
    28.9 KB · Views: 24
  • 1707946741579.png
    1707946741579.png
    72.6 KB · Views: 24
  • Unbenannt.png
    Unbenannt.png
    51.8 KB · Views: 24
Deine SSD's sind Consumer-SSD's, welche für den Einsatz in CLients konzipiert sind und denen wichtige Features fehlen, die sie für einen Einsatz im Server-Umfeld disqualifizieren.

Dazu gehören primär fehlende PLP (Power Loss Protection) und eher bescheidene Ausdauer.
Die Kombination davon sorgt dafür, dass kein Cache benutzt wird und die SSD's für jeden Schreibvorgang den Flash beschreiben müssen, anstatt erst zu cachen und dann einen grossen Block zu schreiben.
Das wiederum sort dafür, dass die SSD's schnell kaputtgeschrieben werden.
Aufgrund der niedrigen Ausdauer der SSD (gemessen in TBW), werden die Teile nicht allzulange leben.

Für ZFS sind Enterprise-SSD's zu empfehlen, die mit einer Grossen Ausdauer und PLP kommen und somit ein mehrfaches der Lebenserwartung und Performance bieten werden.

Zusätzlich kann die Performance natürlich auch noch durch suboptimale Einstellungen bei ZFS beeinträchtigt sein, aber der primäre Faktor ist hier, dass diese SSD's sehr schnell kaputtgehen werden.

Du wirst sehen, dass bei den Smartwerten vermutlich der Wearout-Wert recht schnell ansteigen wird.
 
Optimal ist es auf keinen Fall - das weiß ich selber, allerdings sind Datacenter NVMe SSDs mit 4TB noch recht selten und dementsprechend teuer.

Die gewählten SSDs haben laut Herstellerangaben 5.84PB TBW, Samsung Datacenter SSDs mit 3.84TB haben 5.47PB. Sofern beide SSDs die angegebenen Werte einhalten, wäre die TBW der Consumer SSD sogar höher. Die nächstbeste Crucial P3 mit QLC und 800TB TBW wäre natürlich ein Reinfall gewesen.

Aber deshalb auch im Raid 5, falls eine ausfallen sollte. Notfalls habe ich auch noch ein Proxmox Backup-System mit 3x 10TB Seagate Exos X16, falls mehrere SSDs gleichzeitig kaputt gehen.

Trotzdem sollten die SSDs bessere Werte geben, welche ZFS-Einstellungen könnten dafür der Grund sein? Und kann/sollte man die Kompression bei ZFS aktivieren, oder nicht? Und dann eben noch die Frage, ob es eine bessere alternative zu ZFS gibt.
 
- 3x Innovation IT PerformanceY GEN4 4TB auf Asus Hyper M.2 X16 Card V2
Wenn ich das richtig gesehen habe, dann klaust du dir mit der Asus Karte schon mal 50 % deiner möglichen Leistung, weil die Karte nur PCIe 3.0 kann, deine NVMe aber PCIe 4.0 x4 haben.

Ein RAID5 (oder besser RAIDZ) bedeutet immer, dass du Parität berechnen muss, die Berechnung kostet Zeit und damit ebenfalls Performance.

Weiterhin hast du aus einer VM heraus getestet, dabei sind uns deine Einstellungen nicht bekannt, was den maßgeblichen Einfluss auf die Performance haben kann. Davon abgesehen muss man aber auch sagen, dass du nicht in der VM benchmarken kannst und dann sagen kannst, dass der Host keine Leistung bringt. Deine Methodik ist hierbei einfach gänzlich die falsche.
Ansonsten auch mal hier schauen: https://pve.proxmox.com/wiki/Windows_10_guest_best_practices

Und kann/sollte man die Kompression bei ZFS aktivieren, oder nicht?
Komprimierung gibt es in so ziemlich allen Systemen, ob man es aktivieren sollte oder nicht musst du selbst entscheiden. Komprimierung bedeutet ebenfalls wieder einen gewissen Performanceverlust, da die Daten beim schreiben eben komprimiert werden müssen. Häufig ist der Prozess aber heute sehr transparent, aber nicht unsichtbar. Wenn etwas hast, was sich fortwährend ändert, es dazu ggf. auch immer nur kleine Dateien sind, würde ich das vielleicht vermeiden.
Und dann eben noch die Frage, ob es eine bessere alternative zu ZFS gibt.
Jedes FS hat seine Vor- und Nachteile. Die frage auch hierbei, was war denn der Grund, dass du dich für ZFS entschieden hast? Hat es überhaupt einen Grund? Brauchst du die Features wie z. B. Replication oder Snapshotting etc.? ZFS ist mächtig und kann vieles abdecken, möchte dafür aber auch einen gewissen Anteil der Ressourcen, insbesondere Arbeitsspeicher, haben.
 
Komprimierung gibt es in so ziemlich allen Systemen, ob man es aktivieren sollte oder nicht musst du selbst entscheiden. Komprimierung bedeutet ebenfalls wieder einen gewissen Performanceverlust, da die Daten beim schreiben eben komprimiert werden müssen. Häufig ist der Prozess aber heute sehr transparent, aber nicht unsichtbar. Wenn etwas hast, was sich fortwährend ändert, es dazu ggf. auch immer nur kleine Dateien sind, würde ich das vielleicht vermeiden.
LZ4-Kompression kann Performance bringen, wenn man bandbreiten-limitiert ist (wie z.B. bei HDDs oder bei SSDs wenn der Cache voll ist), da eben weniger Daten gelesen/geschrieben werden müssen.

Die gewählten SSDs haben laut Herstellerangaben 5.84PB TBW, Samsung Datacenter SSDs mit 3.84TB haben 5.47PB. Sofern beide SSDs die angegebenen Werte einhalten, wäre die TBW der Consumer SSD sogar höher. Die nächstbeste Crucial P3 mit QLC und 800TB TBW wäre natürlich ein Reinfall gewesen.
Geht nicht nur um die Haltbarkeit. Ohne PLP fehlt gerne mal Faktor 100 an Performance wenn es um Sync Writes geht (was ZFS öfters benutzt). Guck z.B. mal hier ins Proxmox-ZFS-Benchmark-Paper:
1692011635190.png
Da kannst du ganz leicht anhand der Performance sehe welche SSD PLP hat und welche nicht.
Da würde ich dann wenigstens noch eine Optane als SLOG verbauen, dass da Sync Writes nicht so hart die Consumer-SSDs abnutzen und alles ausbremsen.
 
Last edited:
Optimal ist es auf keinen Fall - das weiß ich selber, allerdings sind Datacenter NVMe SSDs mit 4TB noch recht selten und dementsprechend teuer.
Natürlich sind die etwas teurer als die Supergünstigen Consumer SSDs. Für deine 230€ haben die Dinger gar keinen Cache verbaut.
Bei Enterprise SSDs hast du einen dicken RAM Cache mit PLP und natürlich einen anderen Controller, was natürlich auch etwas kostet.
Neu bekommst du 3,84 TB Enterprise NVMe auch schon für 400€ und gebraucht auch günstiger, wenn man mal welche findet.
Die gewählten SSDs haben laut Herstellerangaben 5.84PB TBW, Samsung Datacenter SSDs mit 3.84TB haben 5.47PB. Sofern beide SSDs die angegebenen Werte einhalten, wäre die TBW der Consumer SSD sogar höher. Die nächstbeste Crucial P3 mit QLC und 800TB TBW wäre natürlich ein Reinfall gewesen.
Da du keinen Cache hast, sondern die Tripple Zellen als Single Level Zellen genutzt werden zum Caching, hast du schon mal Pauschal mindestens eine Drei bis Vierfache Abnutzung der Zellen. Gerade bei ZRaid erzeugst du noch deutlich mehr Writeoverhead der sich mit den SLC Cache Verhalten ja vervielfacht. Da kann nicht mehr raus kommen und die Dinger haben die 5,8 PB bei RaidZ bestimmt mindestens 10x so schnell erreicht wie die Samsung.
 
10x reicht nicht.
Ich habe einen Artikel gelesen in dem erklärt wurde, warum SSD's ohne PLP bei Sync-Writes so schnell sterben.
Das liegt wirklich daran, dass aufgrund des fehlenden PLP kein Cache hergenommen wird (wird durch die Sync-Writes erzwungen) und somit Daten vor dem eigentlichen Schreiben auf das Flash nicht reorganisiert werden können um den eigentlich Schreibzugriff zu optimieren.
Das führt dazu, dass im Worst-Case für ein einzelnes Byte ein Completter Flash-Block (wie gross der Ist, hängt von der SSD ab) neu geschrieben werden muss. führt dann dazu, dass du anstatt z.b. 1 KB an realen Daten zu schreiben, das 20-100-fache geschrieben wird (der genaue Wert hängt von mehreren Faktoren in der Hardware und den Einstellungen am Filesystem ab).

Das frisst unglaublich schnell die TBW der SSD weg.

Bei vorhandenem PLP und Cache werden Daten erst komplett reorganisiert und so optimiert, dass möglichst wenige tatsächliche Flash-Blöcke geschrieben werden müssen.

Das führt in Verbindung mit der grundsätzlich grösseren Ausdauer von Enterprise-Drives dazu, dass die reale Lebenszeit warscheinlich gut jenseits der 10-fachen Menge der Consumer-Drives liegt.

Nachteil der Enterprise-Drives ist deren höherer Energiebedarf (zumindest bei NVMe-Modellen).
 
Die ASUS Karte läuft auf PCIe 4.0, hab ich in einem Bastelserver auch noch verbaut (mit DC NVME). Allerdings hat das Board selbst kein PCIe 4.0, wenn ich das richtig sehe. Also gehüpft wie gesprungen, die volle Bandbreite steht alleine durch den schmaleren Bus gar nicht zur Verfügung. Dazu noch die Kombo mit consumer NVME mit allen bereits oben beschriebenen Nachteilen.
 
PCIe 3.0 ist hier sicherlich nicht der Flaschenhals. Es sind die Consumer SSDs.
Ich habe selbst auch 8 NVMe im RAID-Z1 und das sind nur PCIe 3.1 (Intel P4510).

1708431210118.png

1708431249121.png
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!