Frontiers of Computer Science

, Volume 10, Issue 5, pp 908–924 | Cite as

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

Research Article


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.


virtualization memory management guest swapping performance degradation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Supplementary material

11704_2016_5217_MOESM1_ESM.ppt (1.6 mb)
Supplementary material, approximately 1.57 MB.


  1. 1.
    Stoica I, Morris R, Karger D, Kaashoek M F, Balakrishnan H. Chord: a scalable peer-to-peer lookup service for internet applications. ACM SIGCOMM Computer Communication Review, 2001, 31(4): 149–160CrossRefGoogle Scholar
  2. 2.
    Foster I, Kesselman C. The Grid 2: Blueprint for a New Computing Infrastructure. San Francisco: Morgan Kaufmann Publishers, 2003Google Scholar
  3. 3.
    Armbrust M, Fox A, Griffith R, Joseph A D, Katz R, Konwinski A, Lee G, Patterson D, Rabkin A, Stoica I, Zaharia M. A view of cloud computing. Communications of the ACM, 2010, 53(4): 50–58CrossRefGoogle Scholar
  4. 4.
    Zhang Y, Zhou Y. Transparent computing: spatio-temporal extension on Von Neumann architecture for cloud services. Tsinghua Science and Technology, 2013, 18(1): 10–21CrossRefGoogle Scholar
  5. 5.
    Amazon E C. Amazon elastic compute cloud (Amazon EC2). Amazon Elastic Compute Cloud (Amazon EC2), 2010Google Scholar
  6. 6.
    Sotomayor B, Montero R S, Llorente I M, Foster I. Virtual infrastructure management in private and hybrid clouds. IEEE Internet Computing, 2009, 13(5): 14–22CrossRefGoogle Scholar
  7. 7.
    Xiong H, Liu Z, Xu W, Jiao S. Libvmi: a library for bridging the semantic gap between guest OS and VMM. In: Proceedings of the 12th International Conference on Computer and Information Technology. 2012, 549–556Google Scholar
  8. 8.
    Magenheimer D, Mason C, McCracken D, Hackel K. Transcendent memory and Linux. In: Proceedings of the Linux Symposium. 2009, 191–200Google Scholar
  9. 9.
    Lange J R, Dinda P. Symcall: symbiotic virtualization through VMMto- guest upcalls. In: Proceedings of the 7th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments. 2011, 193–204Google Scholar
  10. 10.
    Salomie T I, Alonso G, Roscoe T, Elphinstone K. Application level ballooning for efficient server consolidation. In: Proceedings of the 8th ACM European Conference on Computer Systems. 2013, 337–350Google Scholar
  11. 11.
    Schopp J, Hansen D, Kravetz M, Takahashi H, Toshihiro I, Goto Y, Hiroyuki K, Tolentino M, Picco B. Hotplug memory redux. In: Proceedings of 2005 Linux Symposium. 2005, 151–311Google Scholar
  12. 12.
    Waldspurger C A. Memory resource management in VMware ESX server. In: Proceedings of the 5th Symposium on Operation Systems Design and Implementation. 2002, 181–194CrossRefGoogle Scholar
  13. 13.
    Heo J, Zhu X Y, Padala P, Wang Z K. Memory overbooking and dynamic control of Xen virtual machines in consolidated environments. In: Proceedings of the 11th IFIP/IEEE International Symposium on Integrated Network Management. 2009, 630–637Google Scholar
  14. 14.
    Zhao W M, Wang Z Z, Luo Y W. Dynamic memory balancing for virtual machines. ACM SIGOPS Operating System Review, 2009, 43(3): 37–47CrossRefGoogle Scholar
  15. 15.
    Min C, Kim I, Kim T, Eom Y I. VMMB: virtual machine memory balancing for unmodified operating systems. Journal of Grid Computing, 2012, 10(1): 69–84CrossRefGoogle Scholar
  16. 16.
    Jones S T, Arpaci-Dusseau A C, Arpaci-Dusseau R H. Geiger: monitoring the buffer cache in a virtual machine environment. ACM SIGOPS Operating Systems Review, 2006, 34(5): 14–24CrossRefGoogle Scholar
  17. 17.
    Lu P, Shen K. Virtual machine memory access tracing with hypervisor exclusive cache. In: Proceedings of 2007 USENIX Annual Technical Conference. 2007, 29–43Google Scholar
  18. 18.
    Amit N, Tsafrir D, Schuster A. Vswapper: a memory swapper for virtualized environments. ACM SIGPLAN Notices, 2014, 49(4): 349–365Google Scholar
  19. 19.
    Arya K, Baskakov Y, Garthwaite A. Tesseract: reconciling guest I/O and hypervisor swapping in a VM. ACM SIGPLAN Notices, 2014, 49(7): 15–28CrossRefGoogle Scholar
  20. 20.
    Gupta D, Lee S, Vrable M, Savage S, Snoeren A C, Varghese G, Voelker G M, Vahdat A. Difference engine: harnessing memory redundancy in virtual machines. Communications of the ACM, 2010, 53(10): 85–93CrossRefGoogle Scholar
  21. 21.
    Miłós G, Murray D G, Hand S, Fetterman M A. Satori: enlightened page sharing. In: Proceedings of the 2009 Conference on USENIX Annual Technical Conference. 2009Google Scholar
  22. 22.
    Kim H, Jo H, Lee J. Xhive: efficient cooperative caching for virtual machines. IEEE Transactions on Computers, 2011, 60(1): 106–119MathSciNetCrossRefGoogle Scholar
  23. 23.
    Lim K, Chang J C, Mudge T, Ranganathan P, Reinhardt S K, Wenisch T F. Disaggregated memory for expansion and sharing in blade servers. In: Proceedings of the 36th Annual International Symposium on Computer Architecture. 2009, 267–278Google Scholar
  24. 24.
    Lim K, Turner Y, Santos J R, Auyong A, Chang J C, Ranganathan P, Wenisch T F. System-level implications of disaggregated memory. In: Proceedings of the 18th International Symposium on High- Performance Computer Architecture. 2012, 189–200Google Scholar
  25. 25.
    Deshpande U, Wang B L, Haque S, Hines M, Gopalan K. MemX: virtualization of cluster-wide memory. In: Proceedings of the 39th International Conference on Parallel Processing. 2010, 663–672Google Scholar
  26. 26.
    Williams D, Weatherspoon H, Jamjoom H, Liu Y H. Overdriver: handling memory overload in an oversubscribed cloud. ACM SIGPLAN Notices, 2011, 46(7): 205–216CrossRefGoogle Scholar
  27. 27.
    Li Y Q, Huang Y B. Tmemcanal: a VM-oblivious dynamic memory optimization scheme for virtual machines in cloud computing. In: Proceedings of the 10th IEEE International Conference on Computer and Information Technology. 2010, 179–186Google Scholar
  28. 28.
    Ren J, Zhang Y X, Chen J. Analysis on the scheduling problem in transparent computing. In: Proceedings of 2013 IEEE International Conference on Embedded and Ubiquitous Computing. 2013, 1832–1837Google Scholar
  29. 29.
    Gibson G A, Van Meter R. Network attached storage architecture. Communications of the ACM, 2000, 43(11): 37–45CrossRefGoogle Scholar
  30. 30.
    Morita K. Sheepdog: distributed storage system for QEMU. KVM Talk at the LinuxCon Japan, 2010Google Scholar
  31. 31.
    Baylor S J, Devarakonda M, Fink S, Gluzberg E, Kalantar M, Muctineni P, Barsness E, Arora R, Dimpsey R, Munroe S J. Java server benchmarks. IBM Systems Journal, 2000, 39(1): 57–81CrossRefGoogle Scholar
  32. 32.
    Blackburn S M, Garner R, Hoffmann C, Khan A M, McKinley K S, Bentzur R, Diwan A, Feinberg D, Frampton D, Guyer S Z, Hirzel M, Hosking A, Jump M, Lee H, Moss J E B, Phansalkar A, Stefanovic D, VanDrunen T, von Dincklage A, Wiedermann B. The DaCapo benchmarks: Java benchmarking development and analysis. ACM SIGPLAN Notices, 2006, 41(10): 169–190CrossRefGoogle Scholar
  33. 33.
    Kivity A, Kamay Y, Laor D, Lublin V, Liguori A. KVM: the Linux virtual machine monitor. In: Proceedings of the Linux Symposium. 2007, 225–314Google Scholar
  34. 34.
    Seelam S R, Teller P J. Virtual I/O scheduler: a scheduler of schedulers for performance virtualization. In: Proceedings of the 3rd International Conference on Virtual Execution Environments. 2007, 105–115CrossRefGoogle Scholar
  35. 35.
    White T. Hadoop: The Definitive Guide. Sebastopol: O’Reilly Media, 2009Google Scholar

Copyright information

© Higher Education Press and Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  1. 1.School of Information Science and EngineeringCentral South UniversityChangshaChina
  2. 2.National Laboratory for Parallel and Distributed ProcessingNational University of Defense TechnologyChangshaChina

Personalised recommendations