Windows Guest memory utilization problem on PVE 9.0.x

rzirzi

Member
Jan 22, 2021
7
1
23
47
After upgrade from PVE 8.x to 9.0 - the Windows guest machine shows memory usage about 100,47%. I have installed latest virtio drivers, dosabled balooning and checked many other parameters... Nothing helps. Is that a PVE bug? I have never had similar problem with this VM before upgrade to PVE 9.0.x
 
pve-manager/9.0.6/49c767b70aeb6648 (running kernel: 6.14.11-1-pve)
one of the windows VMs shows 100.xx% memory usage in PVE VM summary.
windows 11 guest, memory 16384MB, ballooning enabled, minimum memory 16384MB.
virtio 0.1.271 (updated from 0.1.240 to 0.1.266 and 0.1.271 due that issue), taskmanager shows 3.2GB ram usage.
BalloonService / blnsvr.exe up and running.

everything works fine so far, so it is cosmetic issue for me.
 
Last edited:
What do you get back if you run info balloon in the "Monitor" submenu of the VM?
 
following output:
balloon: actual=8192 max_mem=8192 last_update=1756638096

interesting, last update August 31. 01:51 oclock. about that time i did a minor PVE update + reboot + updated virtio drivers to 0.1.271

checked on different VM where memory is shown correctly:
balloon: actual=4096 max_mem=4096 total_mem=4095 free_mem=2355 mem_swapped_in=10480902144 mem_swapped_out=297967616 major_page_faults=383769 minor_page_faults=96456984 last_update=1756784004

both VMs are nearly identical, both on same node, both got same virtio driver in the night.

another affected vm, guest is server 2012r2 with some old virtio drivers:
balloon: actual=8192 max_mem=8192 last_update=1756605071
 
Last edited:
Running a Windows Server 2008 SP2 machine which shows 100% memory consumption since upgrade to Proxmox 9. Same machine on Proxmox 8 shows correct value.

Ballooning driver needs to be x86 which isn't available on latest virtio iso.

Is there any way to make the ballooing work again on such legacy VMs?
 
Ballooning driver needs to be x86 which isn't available on latest virtio iso.
Why don't you stick with the last possible virtio version for 2008 SP2?

Which one that is, I don't know right away.
 
Running ballooing driver version 60.80.104.17300, which is the latest x86 version I can find (interestingly not contained in latest ISO) and Proxmox shows 99,23% memory usage.

Mem usage for Proxmox 8 was like 66%, so I don't think it's working properly.

I have a second Proxmox 8 host with a couple of similar VMs so a solution would be much appreciated.

Edit: Balloon Driver 60.78.104.15400, which is on virtio-win-0.1.285.iso, doesnt seem to do the trick, either.

Edit 2: "monitor -> info balloon" shows "balloon: actual=4096 max_mem=4096 last_update=1765793989" in both cases, Proxmox 8 and 9 running 2he win Server 2k8 VM .. but on Proxmox 8 it shows a smaller than 99,xx% memory usage. So I'm not sure whats going on there. Is the balloon driver actually working on Proxmox 8?
 
Last edited:
Edit 2: "monitor -> info balloon" shows "balloon: actual=4096 max_mem=4096 last_update=1765793989" in both cases, Proxmox 8 and 9 running 2he win Server 2k8 VM .. but on Proxmox 8 it shows a smaller than 99,xx% memory usage. So I'm not sure whats going on there. Is the balloon driver actually working on Proxmox 8?
If that is all you get, then no, it is not working as expected. Is the Balloon Device enabled in the VMs -> Hardware -> Memory settings? Is the "Balloon Service" running in the Windows guest?
Is there no device without a driver in the device manager?

One reason why you see a lower memory usage on Proxmox VE 8 in such a situation, compared to 9, is that with 9 we improved the accounting for memory of the VM from the hosts perspective and it is now quite a bit more accurate.
 
If that is all you get, then no, it is not working as expected. Is the Balloon Device enabled in the VMs -> Hardware -> Memory settings? Is the "Balloon Service" running in the Windows guest?
Is there no device without a driver in the device manager?

One reason why you see a lower memory usage on Proxmox VE 8 in such a situation, compared to 9, is that with 9 we improved the accounting for memory of the VM from the hosts perspective and it is now quite a bit more accurate.
Ballooning Device is checked in the memory settings.

VirtIO Balloon Driver seems to be installed in the VM, not sure how to check if it's actually "running". Status says "running properly".

Proxmox says 99% mem used, task manager says like 50% free right after reboot.

Now found the driver ver. 60.81.104.17400 in iso 1.229, which also doesnt seem to help.

Seems to be all over the place in the ISOs.

There's one device without driver "ACPI/QEMUVGID" - not sure if it's relevant to the mem issue.
 
Last edited:
Proxmox says 99% mem used, task manager says like 50% free right after reboot.
Generally a hypervisor sees (simplified) the max memory ever used by the VM because it was allocated there. The VM can free memory by closing programs but that doesn't change the host's perspective because it was already allocated to the VM.

Ballooning kicks in when the host is over 80% RAM usage, by default.
 
Only once you get more detailed infos back via `info balloon` in the Monitor menu, can Proxmox VE itself show the inside view of the VM.

So if the BalloonService is up and running, the Ballooning Device enabled, things should be good. Except that Device without a driver. Try to let Windows find a driver on the VirtIO ISO by installing a driver via Device Manager. Point it to the root of the ISO. Make sure it is one that contains 2k8 directories for the different drivers.