Optimizing guest swapping using elastic and transparent memory provisioning on virtualization platform

On virtualization platforms, peak memory demand caused by hotspot applications often triggers page swapping in guest OS, causing performance degradation inside and outside of this virtual machine (VM). Even though host holds sufficient memory pages, guest OS is unable to utilize free pages in host directly due to the semantic gap between virtual machine monitor (VMM) and guest operating system (OS). Our work aims at utilizing the free memory scattered in multiple hosts in a virtualization environment to improve the performance of guest swapping in a transparent and implicit way. Based on the insightful analysis of behavioral characteristics of guest swapping, we design and implement a distributed and scalable framework HybridSwap. It dynamically constructs virtual swap pools using various policies, and builds up a synthetic swapping mechanism in a peer-to-peer way, which can adaptively choose different virtual swap pools.We implement the prototype of HybridSwap and evaluate it with some benchmarks in different scenarios. The evaluation results demonstrate that our solution has the ability to promote the guest swapping efficiency indeed and shows a double performance promotion in some cases. Even in the worst case, the system overhead brought by HybridSwap is acceptable.

[1]  Thomas F. Wenisch,et al.  Disaggregated memory for expansion and sharing in blade servers , 2009, ISCA '09.

[2]  Chen Jianer,et al.  Analysis on the Scheduling Problem in Transparent Computing , 2013, 2013 IEEE 10th International Conference on High Performance Computing and Communications & 2013 IEEE International Conference on Embedded and Ubiquitous Computing.

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

[4]  Borja Sotomayor,et al.  Virtual Infrastructure Management in Private and Hybrid Clouds , 2009, IEEE Internet Computing.

[5]  Randy H. Katz,et al.  A view of cloud computing , 2010, CACM.

[6]  Dan Tsafrir,et al.  VSwapper: a memory swapper for virtualized environments , 2014, ASPLOS.

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

[8]  A. Kivity,et al.  kvm : the Linux Virtual Machine Monitor , 2007 .

[9]  Kapil Arya,et al.  Tesseract: reconciling guest I/O and hypervisor swapping in a VM , 2014, VEE '14.

[10]  Zhiyong Liu,et al.  Libvmi: A Library for Bridging the Semantic Gap between Guest OS and VMM , 2012, 2012 IEEE 12th International Conference on Computer and Information Technology.

[11]  Ian Foster,et al.  The Grid 2 - Blueprint for a New Computing Infrastructure, Second Edition , 1998, The Grid 2, 2nd Edition.

[12]  Michael H. Kalantar,et al.  Java server benchmarks , 2000, IBM Syst. J..

[13]  George Varghese,et al.  Difference engine , 2010, OSDI.

[14]  Steven Hand,et al.  Satori: Enlightened Page Sharing , 2009, USENIX Annual Technical Conference.

[15]  Rodney Van Meter,et al.  Network attached storage architecture , 2000, CACM.

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

[17]  Heeseung Jo,et al.  XHive: Efficient Cooperative Caching for Virtual Machines , 2011, IEEE Transactions on Computers.

[18]  Hiroyuki Kamezawa,et al.  Hotplug Memory Redux , 2005 .

[19]  Young Ik Eom,et al.  VMMB: Virtual Machine Memory Balancing for Unmodified Operating Systems , 2012, Journal of Grid Computing.

[20]  Umesh Deshpande,et al.  MemX: Virtualization of Cluster-Wide Memory , 2010, 2010 39th International Conference on Parallel Processing.

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

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

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

[24]  Thomas F. Wenisch,et al.  System-level implications of disaggregated memory , 2012, IEEE International Symposium on High-Performance Comp Architecture.

[25]  Tom White,et al.  Hadoop: The Definitive Guide , 2009 .

[26]  Yaoxue Zhang,et al.  Transparent computing: Spatio-temporal extension on von Neumann architecture for cloud services , 2013 .

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

[28]  Yaqiong Li,et al.  TMemCanal: A VM-oblivious Dynamic Memory Optimization Scheme for Virtual Machines in Cloud Computing , 2010, 2010 10th IEEE International Conference on Computer and Information Technology.

[29]  Chris Mason,et al.  Transcendent Memory and Linux , 2006 .

[30]  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.

[31]  David R. Karger,et al.  Chord: A scalable peer-to-peer lookup service for internet applications , 2001, SIGCOMM '01.

[32]  Seetharami R. Seelam,et al.  Virtual I/O scheduler: a scheduler of schedulers for performance virtualization , 2007, VEE '07.

[33]  Kai Shen,et al.  Virtual Machine Memory Access Tracing with Hypervisor Exclusive Cache , 2007, USENIX Annual Technical Conference.