I know nothing about memory ballooning until I read this post – “How does memory ballooing work”.
Here is my understanding of this topic:
What is memory ballooning?
The ballooning driver (part of VMware Tools) frees up the VM guest memory (active memory + free memory) and makes it available to the Hypervisor (so avoid hypervisor swapping).
How does it work? and how does it impact performance?
The ballooning driver will balloon all ram down to the minimum recommended memory for each operating system + Mem.AppBalloonMaxSlack (16 MB by default, it’s adjustabe from 1 MB – 256 MB). The minimum recommended memory value is set by the operating sytem vendor and hard coded by VMware. It cannot be changed.
For example, RHEL 7’s minimum recommended memory is 512 MB. The ballooning driver will balloon all ram down to 528 MB (512 + 16). If an application in the OS requests more than 528 MB memory, it causes the guest operating system to swap/page. This is better than hypervisor swapping, but still a really bad impact for performance.
How to avoid Ballooning?
- Avoid over provisiooning server memory (the best option)
- Make a reservation for server memory (bad idea in most respects)
- Do not install VMware Tools (bad idea in every respects)