Proxmox reporting very different memory usage for a VM, than the VM itself.

FredreikSchack

New Member
Aug 2, 2023
3
0
1
I don't understand the memory reporting in ProxMox, on a relatively new Windows LTSC VM install that is running nothing, ProxMox is reporting 90% usage of the 16GB allocated. The Windows VM itself reports 1.6GB RAM usage out of the allocated 16GB. That's a quite big discrepancy?
 
Because without following the Windows best practices and installing the guest agent PVE will show the real RAM usage of the VM (so physical RAM used by the KVM process virtualizing the VM). If you want to see the "wrong" (from the point of view of the guestOS where RAM used for caching is counted as free/available) RAM utilization of Windows you could install and enable the guest agent: https://pve.proxmox.com/wiki/Windows_2022_guest_best_practices#Guest_Agent
 
  • Like
Reactions: skn666
Hypervisors like KVM have little choice but to allocate all RAM a VM was configured to use initially, because most operating systems are designed to be in charge of the entire hardware. That's why containers are so neat, as they share the OS with the host and the OS can lie and cheat to the container while it knows full well what the processes inside the container actually see and use.

Ballon drivers were invented when hypervisor vendors got envious about the resource efficiency containers could achieve and they invented a driver that simply grabs RAM from inside a VM and and then reports it as unused by the VM's OS to the hypervisor.

It got that name, because unless software inside the VM actually starts using the RAM allocated to the VM, it will fill the entire VM's RAM space with RAM allocations it will "smuggle back" to the hypervisor to give to other VMs or containers in actual need for RAM.

VMware might have done it first, but Xen and KVM certainly copied that technique rather quickly as well as the pass-through device drivers for busy devices like NICs and storage controllers.

So yes, follow Dunuin's advice and the manuals because it's what makes VM overhead palatable compared to containers.
 
  • Like
Reactions: skn666
To add to what has been mentioned, I found two pieces of advice: turn on ballooning and enable the guest agent. The guest agent also requires you to install the guest agent driver in Windows, which is on the virt-io CD. However until I did the extra ballooning steps listed here, the 16GB VM using 2GB memory plus 1GB cache was still reporting at >90%.
 

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!