Hotplug or Ballooning: A Comparative Study on Dynamic Memory Management Techniques for Virtual Machines

In virtualization environments, static memory allocation for virtual machines (VMs) can lead to severe service level agreement (SLA) violations or inefficient use of memory. Dynamic memory allocation mechanisms such as ballooning and memory hotplug were proposed to handle the dynamics of memory demands. However, these mechanisms so far have not been quantitatively or comparatively studied. In this paper, we first develop a runtime system called U-tube, which provides a framework to adopt memory hotplug or ballooning for dynamic memory allocation. We then implement fine-grained memory hotplug in Xen. We demonstrate the effectiveness of U-tube for dynamic memory management through two case studies: dynamic memory balancing and memory overcommitment. With these two case studies, we make a quantitative comparison between memory hotplug and ballooning. The experiments show that there is no absolute winner for different scenarios. Our findings can be very useful for practitioners to choose the suitable dynamic memory management techniques in different scenarios.

[1]  Bingsheng He,et al.  VMbuddies: Coordinating Live Migration of Multi-Tier Applications in Cloud Environments , 2015, IEEE Transactions on Parallel and Distributed Systems.

[2]  David Cunningham,et al.  M3R: Increased performance for in-memory Hadoop jobs , 2012, Proc. VLDB Endow..

[3]  Zhen Xiao,et al.  Dynamic Resource Allocation Using Virtual Machines for Cloud Computing Environment , 2013, IEEE Transactions on Parallel and Distributed Systems.

[4]  Peter A. Dinda,et al.  SymCall: symbiotic virtualization through VMM-to-guest upcalls , 2011, VEE '11.

[5]  Hakim Weatherspoon,et al.  Overdriver: handling memory overload in an oversubscribed cloud , 2011, VEE '11.

[6]  Minyi Guo,et al.  RAMZzz: Rank-aware DRAM power management with dynamic migrations and demotions , 2012, 2012 International Conference for High Performance Computing, Networking, Storage and Analysis.

[7]  Bingsheng He,et al.  A Survey of Resource Management in Multi-Tier Web Applications , 2014, IEEE Communications Surveys & Tutorials.

[8]  Xiaoyun Zhu,et al.  Memory overbooking and dynamic control of Xen virtual machines in consolidated environments , 2009, 2009 IFIP/IEEE International Symposium on Integrated Network Management.

[9]  Carl A. Waldspurger,et al.  Memory resource management in VMware ESX server , 2002, OSDI '02.

[10]  Cong Xu,et al.  vSlicer: latency-aware virtual machine scheduling via differentiated-frequency CPU slicing , 2012, HPDC '12.

[11]  Shlomit S. Pinter,et al.  Improving machine virtualization with 'hotplug memory' , 2005, 17th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD'05).

[12]  Gustavo Alonso,et al.  Application level ballooning for efficient server consolidation , 2013, EuroSys '13.

[13]  Amer Diwan,et al.  The DaCapo benchmarks: java benchmarking development and analysis , 2006, OOPSLA '06.

[14]  Parag Agrawal,et al.  The case for RAMClouds: scalable high-performance storage entirely in DRAM , 2010, OPSR.

[15]  Dave Hansen,et al.  Hotplug Memory and the Linux VM , 2004 .

[16]  Ada Gavrilovska,et al.  Differential virtual time (DVT): rethinking I/O service differentiation for virtual machines , 2010, SoCC '10.

[17]  Peter J. Varman,et al.  mClock: Handling Throughput Variability for Hypervisor IO Scheduling , 2010, OSDI.

[18]  Alexander Aiken,et al.  Context- and path-sensitive memory leak detection , 2005, ESEC/FSE-13.

[19]  Jun Zhu,et al.  Optimizing the Performance of Virtual Machine Synchronization for Fault Tolerance , 2011, IEEE Transactions on Computers.

[20]  Andrea C. Arpaci-Dusseau,et al.  Geiger: monitoring the buffer cache in a virtual machine environment , 2006, ASPLOS XII.

[21]  Sigmund Cherem,et al.  Practical memory leak detection using guarded value-flow analysis , 2007, PLDI '07.

[22]  Anoop Gupta,et al.  Scheduling and page migration for multiprocessor compute servers , 1994, ASPLOS VI.

[23]  Kartik Gopalan,et al.  Post-copy based live virtual machine migration using adaptive pre-paging and dynamic self-ballooning , 2009, VEE '09.

[24]  Michael Stumm,et al.  Path: page access tracking to improve memory management , 2007, ISMM '07.

[25]  Haining Wang,et al.  An Effective Memory Optimization for Virtual Machine-Based Systems , 2011, IEEE Transactions on Parallel and Distributed Systems.

[26]  Zhenlin Wang,et al.  Dynamic memory balancing for virtual machines , 2009, OPSR.

[27]  Kyrre M. Begnum,et al.  Bayllocator: A Proactive System to Predict Server Utilization and Dynamically Allocate Memory Resources Using Bayesian Networks and Ballooning , 2012, LISA.

[28]  Muli Ben-Yehuda,et al.  Ginkgo : Automated , Application-Driven Memory Overcommitment for Cloud Computing , 2011 .

[29]  Oracle Corp,et al.  Memory Overcommit… without the commitment , 2008 .

[30]  Bingsheng He,et al.  Distributed Systems Meet Economics: Pricing in the Cloud , 2010, HotCloud.