Ardaneh
Enthusiast
Enthusiast

Good question!

When we are talking about Memory or CPU in the virtualized world, we are talking about shared resources, so for instance when you assigned 12 GB of memory (Granted Memory) to a VM (If you don't reserve the allocated memory to the VM) it uses the memory by its needs (Active Memory) and the free part of the memory (for example 8 GB of 12 GB) will be used by other VMs until the total amount of your ESXi host memory reaches the low or soft state (you can check your ESXi memory state by using esxtop command - M switch).

When this situation occurred, some algorithms will run to provide enough memory for those VMs that are in contention, one of those algorithms is Memory Ballooning. with Ballooning, those parts of VM memory (In guest os level) with the free flag will be restored to the ESXi (using a driver called "vmmemctl" that was installed by VMware tools) and then ESXi can serve other VMs.

Hence, memory ballooning is not a good sign for your virtualization, so you should keep it to zero as long as you can (by avoiding memory overcommitment)

Hope this could be helpful