Gast stürzt ab (Out of Memory)

goifalracer

Member
Mar 29, 2023
91
5
8
Hallo,

ich habe auf Proxmox, eine Ubuntu 22 Desktop VM laufen.
Die hat 2 GB RAM zugewiesen bekommen, läuft auch einwandfrei.

Der Rechner auf dem Proxmox läuft hatte ursprünglich 8GB RAM, an der Swap habe ich nichts gemacht.
Wenn in der Ubuntu VM ressourcenfressende Aufgaben gemacht wurden, dann stürzte die VM ab, mit der Meldung (Out of Memory)

Ich konnte die Aufgaben in der VM nur durchführen wenn ich der VM 1 GB RAM zugewiesen hatte.
Mir ist aufgefallen, das die VM auch mehr RAM beansprucht als Ihr zugewiesen ist.
Dann killt Proxmox die VM, bevor Proxmox selbst der RAM zu wenig wird oder??

Aber warum nimmt sich die VM mehr RAM als Ihr zugewiesen ist, kann mir das jemand erklären??

Jetzt habe ich auf 24 GB RAM aufgerüstet, der VM 8 GB gegönnt und es läuft.
Das ganze ist aber nur ein Testsystem.
 
Mir ist aufgefallen, das die VM auch mehr RAM beansprucht als Ihr zugewiesen ist.
Das ist normal. Du hast immer Virtualisierungsoverhead. Würde mich nicht wundern wenn die VM auch mal 2,5 oder 3GB RAM braucht. Wenn du einen Caching-Mode wie "Writeback" benutzt entsprechend mehr, weil dann alle Writes erstmal noch auf den RAM vom Host gehen.
Guck am besten mal mit htop auf die "RES"-Spalte des KVM Prozesses der die VM virtualisiert. Da sieht man dann ganz gut was die VM so ca an RAM verbraucht.
 
Last edited:
Danke für deine Antwort, das dachte ich mir schon.
Kann man das irgendwie begrenzen, also das der RAM der von der VM gefressen wird limitiert ist.?
Wie macht man das auf einem Produktivsystem, plant man da großzügig, oder kann man da mit Faktoren den max RAM bestimmen?
 
Kann man das irgendwie begrenzen, also das der RAM der von der VM gefressen wird limitiert ist.?
Wäre mir nicht bekannt.

Wie macht man das auf einem Produktivsystem, plant man da großzügig, oder kann man da mit Faktoren den max RAM bestimmen?
Du könntest mit Ballooning arbeiten und dann z.B. der VM "Min RAM: 1,5GB", "Max RAM: 2GB" geben. Sobald dann der Host über 80% RAM-Auslastung liegt fängt er an der VM langsam den RAM zu stehlen bis der PVE Host entweder wieder unter 80% RAM-Nutzung liegt oder der VM kein RAM mehr gestohlen werden kann, da die 1,5GB erreicht sind. Ballooning kümmert sich aber nicht darum, ob die VM den RAM braucht oder nicht. Ggf. muss das GastOS dann wichtige Prozesse killen, damit es innerhalb des Gastes dann nicht zum OOM kommt.
Achso, und klappt nicht wenn du irgndwie PCI Passthrough benutzt.
Siehe: https://pve.proxmox.com/wiki/Dynamic_Memory_Management
 
Last edited:

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!