Abstract:Virtualization technology intends to deliver flexibility, consolidation, and high resource utilization to data centers. High resource utilization as well as high performance promised by virtualization largely depends on effective and efficient physical memory resource management scheme where memory allocation can adjust to dynamic memory demands of applications. This paper presents a predictive memory resource management scheme that combines memory resource monitoring and balancing to improve the resource utilization of a virtualized data center. A design is provided for a new low-overhead working set size tracing mechanism without loss of prediction accuracy. With accurate prediction, the presented scheme further resorts to either local or global memory balancing when the predicted trend of memory demand of a virtual machine exceeds its current allocation. Multiple mechanisms are employed: Ballooning can dynamically adjust memory allocation within a single host, remote cache enables a host to take the idle memory of another host as its network cache, and virtual machine migration moves virtual machines across multiple physical servers. The strength and weakness of each mechanism and design selection policy for memory balancing according to memory pressure are also discussed. Experimental results show that the global memory balancing achieves a significant center-wide speedup and energy conservation.