Hi,
I am trying to understand how memory allocation works in Proxmox VE compared to VMware.
My environment contains both Linux and Windows VMs. For all VMs, the following memory options are enabled:

For each VM, Memory and Minimum Memory are configured with the same value. Therefore, there should be no dynamic ballooning range.
Based on this configuration, I would expect each VM to use or reserve a constant amount of host memory while it is running. Is this assumption correct?

However, I observe different behavior after rebooting the VMs:
This looks as though Proxmox/QEMU allocates host memory on demand when guest memory pages are actually touched (in Linux environments), rather than immediately allocating the VM’s complete configured memory.
With VMware, I am used to seeing the configured VM memory appear as allocated on the host as soon as the VM is started.
My main questions are:
Thanks and best wishes,
McShadow
I am trying to understand how memory allocation works in Proxmox VE compared to VMware.
My environment contains both Linux and Windows VMs. For all VMs, the following memory options are enabled:
- Ballooning Device
- Allow KSM

For each VM, Memory and Minimum Memory are configured with the same value. Therefore, there should be no dynamic ballooning range.
Based on this configuration, I would expect each VM to use or reserve a constant amount of host memory while it is running. Is this assumption correct?

However, I observe different behavior after rebooting the VMs:
- After rebooting the Windows VMs, the amount of free host memory decreases by ~10GB (happened once a week until now).
- Immediately after rebooting the Linux VM, the amount of free host memory increases by ~the amount of configured RAM.
- The Linux VM then gradually consumes more host memory again as applications inside the guest require additional RAM.
This looks as though Proxmox/QEMU allocates host memory on demand when guest memory pages are actually touched (in Linux environments), rather than immediately allocating the VM’s complete configured memory.
With VMware, I am used to seeing the configured VM memory appear as allocated on the host as soon as the VM is started.
My main questions are:
- Is this expected behavior in Proxmox VE when Memory and Minimum Memory are identical?
- Is there a supported way to make Proxmox/QEMU allocate or preallocate the VM’s complete configured RAM when the VM starts, similar to the behavior I am used to from VMware?
Thanks and best wishes,
McShadow
