Abstract
VMware ESX Server is a thin software layer designed to multiplex hardware resources efficiently among virtual machines running unmodified commodity operating systems. This paper introduces several novel ESX Server mechanisms and policies for managing memory. A ballooning technique reclaims the pages considered least valuable by the operating system running in a virtual machine. An idle memory tax achieves efficient memory utilization while maintaining performance isolation guarantees. Content-based page sharing and hot I/O page remapping exploit transparent page remapping to eliminate redundancy and reduce copying overheads. These techniques are combined to efficiently support virtual machine workloads that overcommit memory.
- Andrea C. Arpaci-Dusseau and Remzi H. Arpaci-Dusseau. "Information and Control in Gray-Box Systems," Proc. Symposium on Operating System Principles, October 2001.]] Google ScholarDigital Library
- Ozalp Babaoglu and William Joy. "Converting a Swap-Based System to do Paging in an Architecture Lacking Page-Reference Bits," Proc. Symposium on Operating System Principles, December 1981.]] Google ScholarDigital Library
- Edouard Bugnion, Scott Devine, Kinshuk Govil, and Mendel Rosenblum. "Disco: Running Commodity Operating Systems on Scalable Multiprocessors," ACM Transactions on Computer Systems, 15(4), November 1997.]] Google ScholarDigital Library
- Pei Cao, Edward W. Felten, and Kai Li. "Implementation and Performance of Application-Controlled File Caching," Proc. Symposium on Operating System Design and Implementation, November 1994.]] Google ScholarDigital Library
- Jeffrey S. Chase, Darrell C. Anderson, Prachi N. Thakar, and Amin M. Vahdat. "Managing Energy and Server Resources in Hosting Centers," Proc. Symposium on Operating System Principles, October 2001.]] Google ScholarDigital Library
- R. J. Creasy. "The Origin of the VM/370 Time-Sharing System," IBM Journal of Research and Development, 25(5), September 1981.]]Google ScholarDigital Library
- Bryan Ford, Mike Hibler, Jay Lepreau, Patrick Tullman, Godmar Back, and Stephen Clawson. "Microkernels Meet Recursive Virtual Machines," Proc. Symposium on Operating System Design and Implementation, October 1996.]] Google ScholarDigital Library
- Robert P. Goldberg. "Survey of Virtual Machine Research," IEEE Computer, 7(6), June 1974.]]Google Scholar
- Kinshuk Govil, Dan Teodosiu, Yongqiang Huang, and Mendel Rosenblum. "Cellular Disco: Resource Management Using Virtual Clusters on Shared-Memory Multiprocessors," Proc. Symposium on Operating System Principles, December 1999.]] Google ScholarDigital Library
- Peter H. Gum. "System/370 Extended Architecture: Facilities for Virtual Machines," IBM Journal of Research and Development', 27(6), November 1983.]]Google Scholar
- Steven M. Hand. "Self-Paging in the Nemesis Operating System," Proc. Symposium on Operating Systems Design and Implementation, February 1999.]] Google ScholarDigital Library
- Kieran Harty and David R. Cheriton. "Application-Controlled Physical Memory using External Page-Cache Management," Proc. Fifth International Conference on Architectural Support for Programming Languages and Operating Systems, October 1992.]] Google ScholarDigital Library
- Intel Corporation. IA-32 Intel Architecture Software Developer's Manual. Volumes I, II, and III, 2001.]]Google Scholar
- Bob Jenkins. "Algorithm Alley," Dr. Dobbs Journal, September 1997. Source code available from http://burtleburtle.net/bob/hash/]]Google Scholar
- Ted Kaehler. "Virtual Memory for an Object-Oriented Language," Byte, August 1981.]]Google Scholar
- Minkyong Kim and Brian Noble. "Mobile Network Estimation," Proc. Seventh Annual International Conference on Mobile Computing and Networking, July 2001.]] Google ScholarDigital Library
- Jochen Liedtke, Hermann Hartig, and Michael Hohmuth. "OS-Controlled Cache Predictability for Real-Time Systems," Proc. Third IEEE Real-Time Technology and Applications Symposium, June 1997.]] Google ScholarDigital Library
- Marshall K. McKusick, Keith Bostic, Michael J. Karels, and John S. Quaterman. The Design and Implementation of the 4.4 BSD Operating System, Addison-Wesley, 1996.]] Google ScholarDigital Library
- Theodore H. Romer, Dennis Lee, Brian N. Bershad and J. Bradley Chen. "Dynamic Page Mapping Policies for Cache Conflict Resolution on Standard Hardware," Proc. Symposium on Operating System Design and Implementation, November 1994.]]Google Scholar
- L. H. Seawright and R. A. McKinnon. "VM/370: A Study of Multiplicity and Usefulness," IBM Systems Journal, 18(1), 1979.]]Google ScholarDigital Library
- Timothy Sherwood, Brad Calder and Joel S. Emer. "Reducing Cache Misses Using Hardware and Software Page Placement," Proc. International Conference on Supercomputing, June 1999.]] Google ScholarDigital Library
- David A. Solomon and Mark Russinovich. Inside Microsoft Windows 2000, Third Ed., Microsoft Press, 2001.]] Google ScholarDigital Library
- Jeremy Sugerman, Ganesh Venkitachalam, and Beng-Hong Lim. "Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor," Proc. Usenix Annual Technical Conference, June 2001.]] Google ScholarDigital Library
- David G. Sullivan, Robert Haas, and Margo I. Seltzer. "Tickets and Currencies Revisited: Extensions to Multi-Resource Lottery Scheduling," Proc. Seventh Workshop on Hot Topics in Operating Systems', March 1999.]] Google ScholarDigital Library
- David G. Sullivan and Margo I. Seltzer. "Isolation with Flexibility: A Resource Management Framework for Central Servers," Proc. Usenix Annual Technical Conference, June 2000.]] Google ScholarDigital Library
- Andrew S. Tanenbaum. Modern Operating Systems, Prentice Hall, 1992.]] Google ScholarDigital Library
- R. Tremaine, P. Franaszek, J. Robinson, C. Schulz, T. Smith, M. Wazlowski, and P. Bland. "IBM Memory Expansion Technology (MXT)," IBM Journal of Research and Development', 45(2), March 2001.]]Google Scholar
- Andrew Tridgell. "dbench" benchmark. Available from ftp://samba.org/pub/tridge/dbench/, September 2001.]]Google Scholar
- VMware, Inc. VMware ESX Server User's Manual Version 1.5, Palo Alto, CA, April 2002.]]Google Scholar
- Carl A. Waldspurger and William E. Weihl. "Lottery Scheduling: Flexible Proportional-Share Resource Management," Proc. Symposium on Operating System Design and Implementation, November 1994.]] Google ScholarDigital Library
- Carl A. Waldspurger. Lottery and Stride Scheduling: Flexible Proportional-Share Resource Management, Ph.D. thesis, Technical Report MIT/LCS/TR-667, September 1995.]] Google Scholar
- Carl A. Waldspurger and William E. Weihl. "An Object-Oriented Framework for Modular Resource Management," Proc. Fifth Workshop on Object-Orientation in Operating Systems, October 1996.]] Google ScholarDigital Library
Index Terms
- Memory resource management in VMware ESX server
Recommendations
Memory resource management in VMware ESX server
OSDI '02: Proceedings of the 5th symposium on Operating systems design and implementation (Copyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading)VMware ESX Server is a thin software layer designed to multiplex hardware resources efficiently among virtual machines running unmodified commodity operating systems. This paper introduces several novel ESX Server mechanisms and policies for managing ...
Comments