Memory resource management in VMware ESX server
Carl A. Waldspurger
Presents foundational memory virtualization techniques, including memory ballooning, content-based page sharing, and an idle memory tax, that enable hypervisors to safely and efficiently overcommit physical memory across unmodified guest operating systems.
Modern data centers face high operational costs and inefficient hardware usage due to underutilized physical servers. While consolidating multiple servers into virtual machines on a single physical host solves this underutilization, it introduces a major memory management challenge. Virtual machine monitors traditionally lack visibility into guest operating system memory usage, making it difficult to safely overcommit memory—assigning more total memory to virtual machines than physically exists—without causing severe performance degradation or double-paging anomalies.
The article demonstrates and evaluates novel memory resource management policies and mechanisms implemented in VMware ESX Server 1.5. Its main objective is to prove that standard, unmodified commodity operating systems such as Windows and Linux can efficiently share and dynamically overcommit physical memory while preserving performance isolation guarantees.
The authors designed a comprehensive memory management architecture and evaluated it through controlled synthetic benchmarks (such as dbench and SPEC95) and real-world multi-virtual-machine enterprise workloads on multi-processor hardware. The architecture introduces four core techniques: cooperative memory ballooning to reclaim memory via native guest operating system mechanisms, content-based page sharing to eliminate duplicate memory pages, statistical sampling combined with an idle memory tax to prevent inactive virtual machines from hoarding resources, and dynamic page remapping to reduce data-copying overhead for input/output devices.
The evaluation yielded several critical findings. First, content-based page sharing successfully reclaimed up to 67% of memory in homogeneous environments and between 7% and 33% of total memory in real-world production enterprise deployments without requiring guest operating system modifications. Second, the cooperative ballooning mechanism achieved memory reclamation with minimal overhead, tracking native performance within 1.4% to 4.4%. Third, applying an idle memory tax of 75% effectively reclaimed unneeded memory from idle virtual machines and reallocated it to active workloads, improving active application throughput by more than 30%. Finally, dynamic remapping of frequently accessed input/output pages across memory boundaries reduced costly buffer copying operations by several orders of magnitude.
These findings demonstrate that organizations can safely and aggressively consolidate enterprise server workloads onto fewer physical machines. By shifting memory reclamation decisions back to the guest operating systems through ballooning and reclaiming idle memory dynamically, systems can overcommit resources by 60% or more while maintaining strict quality-of-service guarantees. This substantially reduces hardware acquisition costs, floor space, and power consumption without sacrificing workload isolation or stability.
Organizations adopting server virtualization should configure proportional share allocations alongside minimum memory guarantees and utilize dynamic overcommitment policies with active idle taxation. For future operational development, virtualization platforms should expand dynamic remapping to optimize non-uniform memory access hardware, integrate cache-aware page allocations, and explore adaptive feedback mechanisms across combined processor and storage resources.
The results provide high confidence for standard server consolidation workloads running common operating systems. However, readers should note that memory savings from page sharing remain workload-dependent and will be lower in highly heterogeneous environments. Additionally, ballooning effectiveness depends on guest driver availability, requiring system-level swapping mechanisms as a temporary safety fallback during guest initialization or unexpected memory spikes.
- Paper: Exokernel: an operating system architecture for application-level resource management, D. Engler et al. (1995). Understanding the Exokernel's separation of physical resource multiplexing from high-level operating system abstractions provides essential conceptual background for how hypervisors virtualize and isolate hardware memory.
- Paper: Xen and the art of virtualization, P. Barham et al. (2003). Read this paper next to see how Xen introduced paravirtualization as an alternative approach to full virtualization, contrasting directly with VMware's transparent memory management techniques.
- Paper: Live migration of virtual machines, Christopher J. Clark et al. (2005). This work builds on hypervisor memory tracking mechanisms to achieve live migration of running virtual machine memory states across physical hosts with minimal downtime.
- Paper: Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center, Benjamin Hindman et al. (2011). This paper scales the principles of dynamic resource multiplexing and overcommitment beyond single-host hypervisors to cluster-wide data center frameworks.
