Abstract
Virtual machine monitors (VMMs) are a popular platform for Internet hosting centers and cloud-based compute services. By multiplexing hardware resources among virtual machines (VMs) running commodity operating systems, VMMs decrease both the capital outlay and management overhead of hosting centers. Appropriate placement and migration policies can take advantage of statistical multiplexing to effectively utilize available processors. However, main memory is not amenable to such multiplexing and is often the primary bottleneck in achieving higher degrees of consolidation.
Previous efforts have shown that content-based page sharing provides modest decreases in the memory footprint of VMs running similar operating systems and applications. Our studies show that significant additional gains can be had by leveraging both subpage level sharing (through page patching) and incore memory compression. We build Difference Engine, an extension to the Xen VMM, to support each of these---in addition to standard copy-on-write full-page sharing---and demonstrate substantial savings across VMs running disparate workloads (up to 65%). In head-to-head memory-savings comparisons, Difference Engine outperforms VMware ESX server by a factor 1.6--2.5 for heterogeneous workloads. In all cases, the performance overhead of Difference Engine is less than 7%.
- }}http://sysbench.sourceforge.net/.Google Scholar
- }}http://samba.org/ftp/tridge/dbench/.Google Scholar
- }}http://www.iozone.org/.Google Scholar
- }}http://www.azillionmonkeys.com/qed/hash.html.Google Scholar
- }}Barham, P., Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A., Neugebauer, R., Pratt, I., Warfield, A. Xen and the art of virtualization. In Proceedings of the 19th ACM Symposium on Operating Systems Principles (2003). Google ScholarDigital Library
- }}Broder, A.Z. Identifying and filtering near-duplicate documents. In Proceedings of the 11th Annual Symposium on Combinatorial Pattern Matching (2000). Google ScholarDigital Library
- }}Bugnion, E., Devine, S., Rosenblum, M. Disco: Running commodity operating systems on scalable multiprocessors. In Proceedings of the 16th ACM Symposium on Operating System Principles (1997). Google ScholarDigital Library
- }}Cecchet, E., Marguerite, J., Zwaenepoel, W. Performance and scalability of EJB applications. In Proceedings of the 17th ACM Conference on Object-oriented Programming, Systems, Languages, and Applications (2002). Google ScholarDigital Library
- }}Douglis, F. The compression cache: Using on-line compression to extend physical memory. In Proceedings of the USENIX Winter Technical Conference (1993).Google Scholar
- }}Douglis, F., Iyengar, A. Application-specific delta-encoding via resemblance detection. In Proceedings of the USENIX Annual Technical Conference (2003).Google Scholar
- }}Kloster, J.F., Kristensen, J., Mejlholm, A. On the feasibility of memory sharing. Master's thesis, Aalborg University (2006).Google Scholar
- }}Kulkarni, P., Douglis, F., Lavoie, J., Tracey, J.M. Redundancy elimination within large collections of files. In Proceedings of the USENIX Annual Technical Conference (2004). Google ScholarDigital Library
- }}MacDonald, J. xdelta. http://www.xdelta.org/.Google Scholar
- }}Manber, U., Wu, S. GLIMPSE: A tool to search through entire file systems. In Proceedings of the USENIX Winter Technical Conference (1994). Google ScholarDigital Library
- }}McVoy, L., Staelin, C. lmbench: Portable tools for performance analysis. In Proceedings of the USENIX Annual Technical Conference (1996). Google ScholarDigital Library
- }}Tanenbaum, A.S. Modern Operating Systems. Prentice Hall (2007). Google ScholarDigital Library
- }}Tuduce, I.C., Gross, T. Adaptive main memory compression. In Proceedings of the USENIX Annual Technical Conference (2005). Google ScholarDigital Library
- }}Vrable, M., Ma, J., Chen, J., Moore, D., VandeKieft, E., Snoeren, A.C., Voelker, G.M., Savage, S. Scalability, fidelity and containment in the Potemkin virtual honeyfarm. In Proceedings of the 20th ACM Symposium on Operating System Principles (2005). Google ScholarDigital Library
- }}Waldspurger, C.A. Memory resource management in VMware ESX server. In Proceedings of the 5th ACM/USENIX Symposium on Operating System Design and Implementation (2002). Google ScholarDigital Library
- }}Wilson, P.R., Kaplan, S.F., Smaragdakis, Y. The case for compressed caching in virtual memory systems. In Proceedings of the USENIX Annual Technical Conference (1999). Google ScholarDigital Library
Index Terms
Difference engine: harnessing memory redundancy in virtual machines
Recommendations
Difference engine: harnessing memory redundancy in virtual machines
OSDI'08: Proceedings of the 8th USENIX conference on Operating systems design and implementationVirtual machine monitors (VMMs) are a popular platform for Internet hosting centers and cloud-based compute services. By multiplexing hardware resources among virtual machines (VMs) running commodity operating systems, VMMs decrease both the capital ...
Virtualization polling engine (VPE): using dedicated CPU cores to accelerate I/O virtualization
ICS '09: Proceedings of the 23rd international conference on SupercomputingVirtual machine (VM) technologies are making rapid progress and VM performance is approaching that of native hardware in many aspects. Achieving high performance for I/O virtualization remains a challenge, however, especially for high speed networking ...
SRVM: Hypervisor Support for Live Migration with Passthrough SR-IOV Network Devices
VEE '16Single-Root I/O Virtualization (SR-IOV) is a specification that allows a single PCI Express (PCIe) device (ysical function or PF) to be used as multiple PCIe devices (virtual functions or VF). In a virtualization system, each VF can be directly assigned ...
Comments