virtual memory ballooning

Contributor(s): Ryan Lanigan

Virtual memory ballooning is a computer memory reclamation technique used by a hypervisor to allow the physical host system to retrieve unused memory from certain guest virtual machines (VMs) and share it with others. Memory ballooning allows the total amount of RAM required by guest VMs to exceed the amount of physical RAM available on the host. When the host system runs low on physical RAM resources, memory ballooning allocates it selectively to VMs.

If a VM only uses a portion of the memory that it was allocated, the ballooning technique makes it available for the host to use. For example, if all the VMs on a host are allocated 8 GB of memory, some of the VMs will only use half the allotted share. Meanwhile, one VM might need 12 GB of memory for an intensive process. Memory ballooning allows the host to borrow that unused memory and allocate it to the VMs with higher memory demand.  

Content Continues Below

The guest operating system runs inside the VM, which is allocated a portion of memory. Therefore, the guest OS is unaware of the total memory available. Memory ballooning makes the guest operating system aware of the host's memory shortage.

Virtualization providers such as VMware enable memory ballooning. VMware memory ballooning, Microsoft Hyper-V dynamic memory, and the open source KVM balloon process are similar in concept. The host uses balloon drivers running on the VMs to determine how much memory it can take back from an under-utilizing VM. Balloon drivers must be installed on any VM that participates in the memory ballooning technique.

Balloon drivers get the target balloon size from the hypervisor and then inflate by allocating the proper number of guest physical pages within the VM. This process is known as inflating the balloon; the process of releasing the available pages is known as deflating the balloon. 

VM memory ballooning can create performance problems. When a balloon driver inflates to the point where the VM no longer has enough memory to run its processes within itself, it starts using another VM memory technique known as memory swapping. This will slow down the VM, depending upon the amount of memory to recoup and/or the quality of the storage IOPS delivered to it.

Other virtual memory management techniques include memory overcommitmemory pagingmemory mirroring and transparent page sharing.

This was last updated in October 2014

Continue Reading About virtual memory ballooning

Dig Deeper on Virtual machine provisioning and configuration

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

In what situation have you had to use the memory ballooning technique?
I wish I knew about this approach a few years ago when I was managing a large datacenter server class machine that had dozens of virtual environments on it... just for testing, of course (one of the lines I laugh about now, but then it used to drive me crazy when I had to constantly reallocate memory. This would have been a lifesaver :).
I'm an IBM mainframe systems programmer.
In the past 5 years I've also gotten involved with
Linux on the mainframe and on x86 based servers.
I find the whole "world" of Linux/Unix terminology
very curious indeed, This term "Memory Ballooning"
Why can't it be simply called by is actual function.
i.e. 'Memory Management". both strings are the same length. The goes for the term memory leak(s)
I wondered about that the memory module
"leaking" electrons or photons ?
in the mainframe world we call it what it exactly is.
a memory address exception.
This is very good technique to be used for saving cost and memory utilization in Cloud computing. However it is more easily threat to security as VMs can get access to the memory isolated to one VM.

File Extensions and File Formats

Powered by: