Frage zum Speicherverbrauch bei folgender Konfiguration

Floh111

New Member
Apr 25, 2021
3
0
1
44
Hallo,

ich bin neu hier im Forum hätte eine Frage, ob bei folgender Systemkomfiguration die RAM Auslastung "normal" ist.
In meinem HomeServer mit Proxmox VE 6.3 stecken drin:
  • Xeon E3 1230
  • 32 GB RAM
  • 2 SDDs a 240 GB für PVE im ZFS Mirror (gerade neu, war vorher auf USB Stick, evtl. gehen die VMs demnächst auf diese)
  • 2 SSDs a 480 GB für VMs im ZFS Mirror
  • 2 WD Reds a 4TB für VMs Backups / Tempates usw. im ZFS Mirror
  • 4 WD Reds a 4TB am HBA Controller per Passthrough an eine TrueNAS VM durchgereicht, dort als RaidZ2 konfiguriert, mein Daten-Grab
Die VMs werden wöchentlich und mein Daten-Grab wird täglich per Job außerhalb des Servers gesichert.

Als VMs / LXC habe ich bisher "nur" folgende laufen, es sollen aber eigentlich noch mehr werden.
  • VM TrueNAS mit 16 GB Ram (Auslastung 94.13% (15.06 GiB von 16.00 GiB) --> das ist wohl so in Ordnung)
  • LXC PiHole mit 128 MB (37.72% (48.28 MiB von 128.00 MiB))
  • LXC WLAN Controller mit 512 MB Ram (62.08% (317.87 MiB von 512.00 MiB))
Die Gesamtspeicherauslastung der PVE beträgt 95.15% (29.84 GiB von 31.36 GiB), d.h. für mich, dass sich die PVE selbst 14 GB genehmigt. Bei ca. 9,5GB Gesamtfestplattenkapazität für die PVE empfinde ich das als viel und war der Meinung, dass das nicht so viel war, bevor ich den Host auf die beiden SSDs neu installiert hatte.

Hat jemand dazu Erfahrung?
 
Also erstmal gönnt sich ZFS auf Proxmox standardmäßig 50% des RAMs für den ARC. 16GB sind also auf dem Host schon weg. TrueNAS nutzt glaube ich den kompletten RAM für den ARC. Also nochmal 16GB RAM weg. Dann wären 32GB schonmal einfach nur für ZFS weg.

Faustformel bei ZFS ist:
4GB + 1GB RAM je 1 TB Rohkapazität der Laufwerke. Wenn du Deduplikation nutzen willst wären das sogar 4GB + 5GB je 1TB Rohkapazität.

Wenn man nach der Faustformel geht bräuchte dein ZFS auf dem Host 13,5GB. Dein ZFS in der TrueNAS VM arbeitet getrennt und hat seinen eigenen ARC. Hier wären das nach der Faustformel 20GB. 33,5 GB brauchten deine ZFSs also schon. Dann braucht Proxmox selbst noch etwas (2-4GB) und dann natürlich jede VM die du noch betrieben willst. Und jede VM braucht etwas mehr RAM als du ihr zuteilst, weil Virtualisierung immer Overhead hat (sprich der KVM prozess der VM braucht mehr RAM als was du als RAM für die VM einstellst).
Und dann möchte Linux ja auch noch gerne auf dem Host und in der VM die Page Files cachen, damit es schneller arbeiten kann, weil es die Dateien dann aus dem RAM und nicht von den Laufwerken laden muss. Dafür hat man dann im Idealfall auch überall noch ordentlich RAM "frei".

Ist das ein 1230v3 oder v4? Den habe ich auch in zwei FreeNAS-Servern am laufen und ich glaube bei 32GB RAM war bei dem Schluss und mehr kann der nicht nutzen. Für ein NAS wäre das dann noch OK, aber als Hypervisor ist das schon etwas wenig RAM. Deine Hardware läuft also aktuell schon am Limit. Weil die Hardware wegen so wenig RAM etwas schwach ist habe ich bei mir FreeNAS bare metal installiert und nutze die wirklich nur noch als Datengrab. Für Proxmox hatte ich mir dann einen weiteren Server zugelegt (mit 2620v4) der mit deutlich mehr RAM umgehen kann.

Hier steht wie du den ARC für Proxmox verkleinern kannst, damit der nicht 50% verbraucht. Aber nicht vergessen, dass da ZFS je langsamer wird, desto mehr du den ARC verkleinerst. Laufen tut es aber auch mit weniger als was die Faustformel vorgibt, nur darf man sich dann halt nicht über schlechte Performance beschweren, wenn man den ARC zu sehr senkt.
 
Last edited:
Vielen Dank für die schnelle Antwort, hab mir dass in meiner Rechnung mir wohl was gefehlt hat.
Ich hab den 1230v5, der könnte 64GB allerdings das Board noch nicht da es nur 2 Ram Slots hat (ITX).

Frage: Wenn ich mir ein anderes Board mit 64GB Support und noch 2 Riegel holen würde, müsste ich nach deiner Rechnung noch ein bisschen Reserve haben, richtig?
 
Vielen Dank für die schnelle Antwort, hab mir dass in meiner Rechnung mir wohl was gefehlt hat.
Ich hab den 1230v5, der könnte 64GB allerdings das Board noch nicht da es nur 2 Ram Slots hat (ITX).

Frage: Wenn ich mir ein anderes Board mit 64GB Support und noch 2 Riegel holen würde, müsste ich nach deiner Rechnung noch ein bisschen Reserve haben, richtig?
Ja, mit 64GB hättest du Reserve. Die Frage ist halt was du in Zukunft noch alles an VMs einrichten willst. Bei mir im Homeserver sind die 64GB RAM jetzt z.B. auch schon wieder voll und davon nutzt ZFS nur 8GB, weil die ganzen Festplatten in anderen Servern sitzen. Ein weiterer limitierender Punkt sind die PCIe Slots und die E3 Xeons haben leider alle nur so wenige PCIe Lanes. Falls du noch vor hast irgendwas mit Video-Playback (Win10 VM fürs Surfen oder HTPC), Video-Enkodierung (Plex/Emby) oder Routing (OPNsense/pfsense) zu machen, dann gehen super schnell die PCIe Slots aus. Nicht vergessen das sich VMs keine GPU mit dem Host teilen können. Da braucht dann jede einzelne VM ihre eigene Grafikkarte. Sonst muss da die CPU alles an Videoberechnungen durchführen und dann laufen alle 4 Kerne auf 100% um ein Youtube-Video abspielen zu können...und das dann sogar mit Pech noch mit Ruckeln.

Fürs Erste könntest du aber versuchen mal ZFS etwas weniger RAM zu geben und dann gucken, ob dir das noch schnell genug ist.
Also z.B. auf dem Host den ARC auf 8GB limitieren (siehe hier) und der TrueNAS VM nur 12GB RAM geben. Dann hättest du noch gut 7GB frei für neue VMs. Wenn du in das CLI des Hosts arc_summary eingibst, dann bekommst du eine schöne Übersicht über die ARC-Auslastung.
Da kannst du dann z.B. mal gucken wie gut die Hit Rates sind und ob die Dnode und Metadata Caches an die Limits kommen.
Ähnliches sollte sich auch in der TrueNAS VM anzeigen lassen.

Was du auch noch machen könntest wäre die Swappiness in den VMs und auf dem Host selbst zu erhöhen. Dann würde Linux versuchen mehr seltener genutze Daten im RAM auf die SSD auszulagern, was den RAM dann etwas schont, dafür aber auf die Leistung und die Lebenserwartung der SSD geht.
Auch kannst du mal gucken ob bei dir KSM aktiviert ist. KSM kann den RAM deduplizieren. Das kostet dann etwas CPU Leistung, verkleinert aber den RAM-Verbrauch. Wieviel das bringt hängt aber stark davon ab, wie gut sich dein RAM deduplizieren lässt, also wieviel vom RAM identisch und mehrfach vorhanden ist. Bei mir habe ich z.B. immer darauf geachtet, dass da alle VMs nach Möglichkeit das selbe OS und die selbe Software nutzen. Da spart mir KSM von den 64GB gute 9GB RAM ein. Mit Standardwerten setzt KSM übrigens erst bei 80% RAM-Auslastung ein.

Und Ballooning kann man für VMs auch noch einstellen. Dann wird den VMs der RAM limitiert wenn dem Host der RAM ausgeht. Das sollte dann z.B: helfen das Caching von den VMs etwas zu reduzieren. Taugt aber leider nichts für RAM Overprovisioning, also nicht zu viel davon verspechen.
 
Last edited:
Davon werde ich das ein oder andere wohl mal probieren, auch wenn ich mich noch ein bisschen schlauer machen muss ;) Aber mit den richtigen Hinweisen, welche Schrauben noch gedreht werden können, sollte die Suche entsprechend leichter fallen. Wahrscheinlich ziehe ich die VMs von den 480er SSDs auf die 240er als erstes um, dann können die als erstes raus. Sollte zumindest auch ein bisschen sparen.

Neues Board und noch mal 32 GB Ram sind ja auch ein Kostenfaktor.

Als weitere VMs habe ich grundsätzlich gar nicht mehr so viel vor:
  • Von Plex bin ich mittlerweile weg, das das Live-Trancoding von 1080P Material auf dem 1230er nicht so richtig Spass macht. Das mache ich aktuell über entsprechende Freigaben und verlagere die Last auf die Clients.
  • pfSense hatte ich überlegt, würde ich aber nicht auf den Rechner packen. Ist der mal offline, gibts auch kein INET (je nach Konfiguration). Ich habe 3 Damen zu Hause und das spricht gegen den WAF.
  • Geplant ist evtl. noch der Umzug meiner HomeAssistant Installation, die momentan auf einem Rasberry Pi läuft. Eine NextCloud und ReverseProxy wäre danach dran, aber wenig wichtig.