Wieviel ARC für ZFS?

Vengance

Renowned Member
May 21, 2016
271
12
83
34
Hallo,

Ich miete nun schon seit einigen Monaten einen AX41-NVMe bei Hetzner, ausgestattet mit einem Ryzen 5 3600 und 64GB DDR4.

Das läuft bisher auch prima, allerdings geht mir langsam der RAM aus.
Ich nutze ZFS und standardmäßig sind wohl 32GB für den ARC zugeteilt.


Ich frage mich nun wieweit ich den ARC verringern kann, ohne dass die Performance merklich nachlässt.

Gibt es da grobe Richtwerte?

Danke!
 
Hi 50% ist default, wieviel Performance das ausmacht ist extrem unterschiedlich und hängt immer vom Workload ab. I/Os, Blockgröße, etc.
Ich persönlich würde den RAM für ZFS erst einmal halbieren, aber testen musst du das selbst, ob du mit der Performance noch zufrieden bist.
Vermutlich wirst du das halbieren nicht bemerken, aber dafür gibts keine Garantie.
 
  • Like
Reactions: Vengance
Hat hier jemand vielleicht Erfahrungsberichte nach einer ähnlichen Änderung?

Ich würde gerne erst etwas Feedback hören, bevor ich den Wert anpasse :)
 
Hat hier jemand vielleicht Erfahrungsberichte nach einer ähnlichen Änderung?
Da du sowieso NVMes im Server hast, wird es dir nichts ausmachen.
Ich habe bei mir den ARC auf 2GB konfiguriert.

ZFS gibt den ARC zwar frei, wenn ein anderer Prozess versucht Speicher zu belegen, aber es kann vorkommen, dass das zu lange dauert... und dann kommt der OOM Killer und schlägt um sich.
Wenn deine CTs/VMs also einen Großteil des Host RAMs theoretisch (lt. Config) belegen könnten, würde ich den ARC Wert dringend anpassen, damit nichts nach hinten losgeht.

Wichtige Rolle bzgl. I/O Performance spielt auch die Konfiguration deiner VM Disks, da lässt sich viel mehr rausholen als mit dem ARC (bei NVMe).
 
Wichtige Rolle bzgl. I/O Performance spielt auch die Konfiguration deiner VM Disks, da lässt sich viel mehr rausholen als mit dem ARC (bei NVMe).
Danke dir für die Antwort, hast du da ein paar konkrete Tipps?
 
Danke dir für die Antwort, hast du da ein paar konkrete Tipps?
Als Controller "VirtIO SCSI single" auswählen und bei den Disks jeweils iothread aktivieren.
Außerdem würde ich SSD emulation und Discard aktivieren, damit das OS korrekt mit den Disks umgeht, da ja SSDs drunterliegen.
Bei den Disks gibts auch noch die Option cache=writeback (nicht die variant mit (unsafe) benutzen!), das kann ebenfalls ein bisschen nachhelfen.

CPU Typ auf "host" zu setzen, wirkt sich meist auch extrem positiv aus und da du kein Cluster hast, gibt es auch keinen wirklichen Grund eine emulierte CPU zu verwenden.

Mehr dazu hier: https://pve.proxmox.com/pve-docs/pve-admin-guide.pdf, ab Seite 186.
 
Ich kann da nur den Befehl "arc_summary" empfehlen. Der zeigt dir unter anderem deine Hitrates an und wieviel Cache da noch für Dnode und Metadaten frei sind. Da kannst du dann so lange den ARC verkleinern bis entweder deine Hitrates einbrechen oder deinem ARC der Platz für Dnode/Metadaten ausgeht.

Mein Server mit 64GB RAM läuft übrigens mit 8GB für den ARC und meine Hitrates sind trotzdem bei 95%+. Nur der dnode cache ist immer am Limit. Da musste ich schon 2 mal manuell nachbessern und etwas vom Metadaten-Cache abziehen und dem Dnode-Cache hinzufügen.
 
Last edited:
Danke euch, ich habe nun testweise mal den ARC auf 12GB reduziert und werde mal beobachten wie sich das verhält
 
Bei NVMes könnte man ja glatt primarycache=metadata setzen. Die SSDs sollten ja lesend keine Probleme haben, auch ohne ARC.
Naja, den nutzen von ARC sollte man nicht unterschätzen. Ich habe meine Benchmarks mit "primarycache=metadata" gemacht und da kommt es echt übel wenn man z.B. mit 4k Blockgröße sequentuell von einem zvol mit 32K volblocksize ließt. Da hat man dann halt nur noch 1/8 der Lese-Performance. Um 8x 4K sequentiell zu lesen wird dann 8x der selbe 32K Block von der Disk gelesen, also 256K in der Summe. Würde der ARC die Daten cachen, dann würde der erste 4K Zugriff einmal den 32K Block lesen, ARC würde den im RAM behalten und alle weiteren 7x 4K Zugriffe würde dann direkt auf den ARC im RAM zugreifen und es müsste der selbe 32K Block nicht weitere 7 mal von der Disk gelesen werden.
Also ARC Datencaching mit primarycache=metadata ganz ausschalten würde ich da eigentlich nie. Da kann der ARC mit minimaler Größe enorme Performance-Vorteile haben.
 
  • Like
Reactions: SINOS and Falk R.

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!