Gäste auf Proxmox 8 haben einen konstakt steigenden RAM-Verbrauch und Crashen.

zap

New Member
Jul 17, 2023
5
1
3
Hi zusammen,

ich habe zwei Proxmox 7 in Betrieb mit ZFS und machte da gute Effahrungen.
Nun installierte ich frisch ein Proxmox 8.0.3 mit ZFS und habe ein seltsames Phänomen.

Hardware: HP G8 mit 140GB RAM.
Da drauf sind 6 VMs, zugeteilt haben die zusammen etwa 38GB RAM, früher war es die Hälfte von dem. Die VMs habe ich von einem KVM/qemu-System rüber migriert.

Mir ist bewusst, dass ZFS sicher 50% das RAMs sich sich beansprucht, jedoch ist das RAM des Proxmox noch lange nicht aufgebraucht.
DIe VMs jedoch verbrauchen konstant immer mehr RAM, zu sehen in htop/ps bis sie crashen wegen out of Memory. Versucht man jedoch zu eruieren welche Prozesse die RAM verbrauchen sieht man kein Prozess der amok laufen würde.
Zudem passiert das selbe bei allem VMs gleichzeitig.

Ein Restart des gesamten Systems hilft für eine kurze Zeit.
Die letzten Updates sind eingespielt.

Wenn ich google finde ich sehr viele Threads über Leute die sich über den hohen RAM-Verbrauch vom ZFS wundern... aber ich glaube mein Problem ist anders gelagert, zudem ich ja mit Proxmox 7 zwei Systeme super am laufen habe. Die VMs auf Proxmox 7 migrierte ich auf selbe Art damals von vbox.

Grüsse
zap
 
Das klingt eher danach als ob du bei jeder VM ballooning aktiviert hast, aber der ballooning treiber in der VM selbst nicht funktioniert.
Die qemu-guest-tools beinhalten den. Bei Windows VM's kanns jedoch vorkommen das der ballooning dienst sich nicht registriert oder läuft etc...

ballooning ist gut, verwendet ja eigentlich fast jeder, aber du könntest halt entweder die quest-tools fixen, oder in den vm optionen erstmal ballooning abschalten und schauen obs daran liegt.
Ram verbrauch wird natürlich enorm steigen, da wenn du ner vm 4gb ram gegeben hast, die dann direkt 4gb ram komplett verbraucht, aber wenn dann halt eben nichts mehr abstürzt, weist du worans liegt.
 
Danke für das Feedback,
qemu-guest-tools habe ich bei jeder VM installiert. Kann ich das Ballooning prüfen und was ist da de default?
Ich glaube RAM ist perse genug vorhanden. Proxmox selbst läuft ja auch (noch) nicht out of Memory bevor die Guests crashen.

Edit: Ich habe die Option im Proxmox gefunden. Die Zahl ist nie grösser als das zugeteilte Memory ansich.
Und das total zugeteilte RAM ist ja viel kleiner als das was auf dem Server existiert. 38GB vs. 140GB.

Aber eventuell wird durch das Ballooning das RAM nicht mehr frei gegeben.

Edit2: Ich habe bei allen VMs das Ballooning deaktiviert und beobachte ob sie immer noch crashen.
 
Last edited:
du meinst cat /sys/module/zfs/parameters/zfs_arc_max?
Das ist egal, der Arc wird normalerweise freigegeben, wenn dein System/VMs mehr Ram brauchen. Das ist halt nur die max grenze.
Default werte sind da schon gut und 140GB ram scheint ja auch locker genug zu sein, so das 50% Arc (default) in ordnung sind.

Bei min bin ich mir nicht sicher um ehrlich zu sein cat /sys/module/zfs/parameters/zfs_arc_min
Sprich wie sich das system verhält wenn MIN erreicht wurde und alles andere trotzdem mehr ram benötigt.
Also ob Arc auch unter das minimum geht, eher nicht, bin aber nicht sicher.

Jedenfalls könntest du als erstes in den VM Configs einfach ballooning abschalten
VM -> Hardware -> Memory -> Ballooning Device (Häckchen weg)

Wenns dann stabil läuft, weist du ganz genau obs an ballooning halt liegt.
Wenn ja, dann musst du halt ballooning in den VM's selbst fixen, sprich schauen ob der dienst läuft, ob du aktuelle guest-tools hast usw...

LG
 
Guten Morgen!

Ich habe das Ballooning gestern noch deaktiviert. Heute Morgen waren die VMs bis auf eine zumindest nicht gecrashed, der Verbrauch an RAM und die Anzahl Prozesse ist trotzdem hoch aber konstanter. Ich werde da noch später dazu nochmal berichten.

Mir ist ein wichtiger Unterschied aufgefallen.
Bei den vorherigen VMs handete es sich vorallem um Centos, bei den aktuellen um Debian.
Auch wenn ich auf beiden das qemu-quest-agent installiert habe, ist das Modul virtio_balloon nur bei Centos automatisch geladen.
 
Last edited:
So, das Ballooning war sicherlich ein Teil. Das funktioniert jetzt. Einfach das Module geladen. Ballon-Device wird entsprechend aufgelistet.


Der wirkliche RAM-Fresser war aber ein Anderer!
Ich überwache verschiedene Dinge. Dies geschieht über SSH-ProxyCommands.

Vom überwachenden Server zum Proxmox interm über eine Private-IP zur VM.
Das war absolut kein Problem bei der Debianlösung mit KVM/qemu und Debian 11.
Jetzt mit Proxmox 8 beenden sich aber die sshd nach dem Commands nicht mehr sauber und bleiben bestehen auf dem Host und auf den VMs. Diese summieren sich natürlich über die Zeit und fressen das gesamte RAM weg.

Wieso das Verhalten auf einmal Auftritt kann ich nicht sagen, ich habe auch erfolglos mit diversen Timeouts rumprobiert.
Jetzt habe ich bis ich eine Lösung habe ein Script erstellt welches die toten sshd's auf dem Proxmox killt. Die sshd's auf den VMs verschwinden danach automatisch.

Nun laufen die Systeme mal soweit stabil. Sollte ich herausfinden wieso sich das so verhält, werde ich noch berichten.
 
Sehr gut!
Falls das nur commands sind die du extern ausführen lässt, kannst du da nicht ein "exit" hinten reinklatschen?
 
Sehr gut!
Falls das nur commands sind die du extern ausführen lässt, kannst du da nicht ein "exit" hinten reinklatschen?
Jeder Command endet schon mit einem Exit, da der Exit-Code wichtig ist für den Status. :)
Das heisst zumindest der Befehl wird sauber beendet. Trotzdem Danke!
 
  • Like
Reactions: Ramalama

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!