(or overcommitment) is a
feature that allows a
(VM) to use more memory space than the physical host has available. For example, virtualization platforms like VMware ESX allow a
with 2 GB of physical memory to run four guest machines, each with 1 GB of memory space allocated.
The idea of memory overcommit may seem dangerous, because a computer will crash if physical memory is exhausted. In actual practice, however, overcommitment of server computing resources is harmless -- most VMs use only a small portion of the physical memory that is allocated to them. For the previous example, a guest machine with 1 GB of physical memory allocated to it might only need 300-400 MB, leaving 600-700 MB of allocated space unused. If all four example machines use 300 MB, the physical server will have 800 MB of its original 2 GB left over.
Still, some VMs may need all (or even more) of the memory that they have been allocated, while some VMs may need considerably less. Hypervisors such as ESX can identify idle memory and dynamically reallocate unused memory from some VMs to others that need more memory. If none of the current guest machines need additional memory, any idle physical memory can be used to host additional guest machines if necessary.
Note that the concept of memory overcommit is not new. For example, operating systems like Windows have been able to operate and execute applications within the confines of limited computer memory for many years by swapping portions of data and program code content between memory and disk as needed. The technology is called
or memory paging.
Virtual memory or memory paging may prevent a virtual host server from crashing, but it imposes a significant performance penalty on the server, because disk access is far less efficient than with solid-state memory access. The performance hit would simply be too great for servers running multiple VMs.
Ultimately, there must be enough physical memory for optimum virtual server performance. IT professionals will need to exercise due diligence in their assessment of computing resource demands for each VM, then ensure that the prospective host server has adequate computing resources to meet that demand. When memory demands actually approach the server's available memory, an IT professional can choose to add memory to the server (upgrade) or distribute the VMs among various servers to balance computing resource needs (workload balancing).