CMD: classification-based memory deduplication through page access characteristics

Limited main memory size is considered as one of the major bottlenecks in virtualization environments. Content-Based Page Sharing (CBPS) is an efficient memory deduplication technique to reduce server memory requirements, in which pages with same content are detected and shared into a single copy. As the widely used implementation of CBPS, Kernel Samepage Merging (KSM) maintains the whole memory pages into two global comparison trees (a stable tree and an unstable tree). To detect page sharing opportunities, each tracked page needs to be compared with pages already in these two large global trees. However since the vast majority of compared pages have different content with it, that will induce massive futility comparisons and thus heavy overhead. In this paper, we propose a lightweight page Classification-based Memory Deduplication approach named CMD to reduce futile page comparison overhead meanwhile to detect page sharing opportunities efficiently. The main innovation of CMD is that pages are grouped into different classifications based on page access characteristics. Pages with similar access characteristics are suggested to have higher possibility with same content, thus they are grouped into the same classification. In CMD, the large global comparison trees are divided into multiple small trees with dedicated local ones in each page classification. Page comparisons are performed just in the same classification, and pages from different classifications are never compared (since they probably result in futile comparisons). The experimental results show that CMD can efficiently reduce page comparisons (by about 68.5%) meanwhile detect nearly the same (by more than 98%) or even more page sharing opportunities.

[1]  ともやん KVM (Kernel-based Virtual Machine) - 仮想化 , 2009 .

[2]  Prateek Sharma,et al.  Singleton: system-wide page deduplication in virtual environments , 2012, HPDC '12.

[3]  Frank Bellosa,et al.  XLH: More Effective Memory Deduplication Scanners Through Cross-layer Hints , 2013, USENIX Annual Technical Conference.

[4]  Robert P. Goldberg,et al.  Survey of virtual machine research , 1974, Computer.

[5]  Prashant J. Shenoy,et al.  Sharing-aware algorithms for virtual machine colocation , 2011, SPAA '11.

[6]  Hwanju Kim,et al.  Group-Based Memory Deduplication for Virtualized Clouds , 2011, Euro-Par Workshops.

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

[8]  Peter Desnoyers,et al.  Memory buddies: exploiting page sharing for smart colocation in virtualized data centers , 2009, VEE '09.

[9]  Peter A. Dinda,et al.  A case for tracking and exploiting inter-node and intra-node memory content sharing in virtualized large-scale parallel systems , 2012, VTDC '12.

[10]  Purushottam Kulkarni,et al.  All page sharing is equal , but some sharing is more equal than others , 2013 .

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

[12]  Pangfeng Liu,et al.  An Empirical Study on Memory Sharing of Virtual Machines for Server Consolidation , 2011, 2011 IEEE Ninth International Symposium on Parallel and Distributed Processing with Applications.

[13]  Tal Garfinkel,et al.  Virtual machine monitors: current technology and future trends , 2005, Computer.

[14]  Scott Devine,et al.  Disco: running commodity operating systems on scalable multiprocessors , 1997, TOCS.

[15]  Tzi-cker Chiueh,et al.  Introspection-based memory de-duplication and migration , 2013, VEE '13.

[16]  Prashant J. Shenoy,et al.  An Empirical Study of Memory Sharing in Virtual Machines , 2012, USENIX Annual Technical Conference.

[17]  Yongbing Huang,et al.  A lightweight hybrid hardware/software approach for object-relative memory profiling , 2012, 2012 IEEE International Symposium on Performance Analysis of Systems & Software.

[18]  Li Liu,et al.  HMTT: a platform independent full-system memory trace monitoring system , 2008, SIGMETRICS '08.

[19]  Bo Li,et al.  A Memory Deduplication Approach Based on Group in Virtualized Environments , 2013, 2013 IEEE Seventh International Symposium on Service-Oriented System Engineering.

[20]  Wenli Zhang,et al.  HaLock: Hardware-assisted lock contention detection in multithreaded applications , 2012, 2012 21st International Conference on Parallel Architectures and Compilation Techniques (PACT).

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

[22]  Frank Bellosa,et al.  KSM++: Using I/O-based hints to make memory-deduplication scanners more efficient , 2012, ASPLOS 2012.

[23]  Fabrice Bellard,et al.  QEMU, a Fast and Portable Dynamic Translator , 2005, USENIX ATC, FREENIX Track.