

Vfran has one of the best and concise explanation on memory ballooning. If you change it, VMs with lower mem shares will be the first target for reclamation. Are you using resource pools? Check the mem shares.To guarantee that amount memory to a VM, set memory reservation.Investigate if the VM really needs the configured amount of memory.vMotion it to a host with more free memory.VMKernel can reclaim upto 65% of configured memory. Is the GuestOS swapping? If not, it is probably still happy with memory available.Investigate if the VM really needs that amount of memory?.If the host is reclaiming memory, what can I do? Vmware_balloon is Red Hat’s balloon driver RHEL 5.x # lsmod | grep -E 'vmmemctl|vmware_balloon' RHEL 6.x # lsmod | grep -E 'vmmemctl|vmware_balloon' This is the total ballooned targets of the VMs. “target”: total amount of ballooned memory expected to be. This is the total ballooned memory by the VMs. “current” : the total amount of physical memory reclaimed by balloon driver. In this example, balloon driver does not consume anything. If you use Red Hat shipped balloon driver # mount -t debugfs nodev /sys/kernel/debug What you should avoid is a situation in which memory is constantly reclaimed and moved between VMs.Ĭheck balloon driver size using vmware-toolbox-cmd Memory over commitment is when memory configured to VMs on the host is more than physically available memory.

This would not happen unless the host is memory over committed. Behind the scene, the VMkernel will un-map the parts of the physical memory formerly allocated to the VM and give it to a different VM. To the GuestOS, it would look like a genuine memory usage. To steal memory from a VM, VMkernel will inflate the balloon driver which is inside the GuestOS. In other words, is ESXi eating my VM’s memory?īalloon driver is a method by which VMkernel reclaims memory from virtual machines.
