Transcendent Memory: A new approach to managing RAM in a virtualized environment
Channel: Linux.conf.au 2010 -- Wellington, New Zealand
Date: 08/12/2014

Presenter(s): Dan Magenheimer
URL: http://2010.linux.conf.au/programme/schedule/view_talk/50112

Managing a fixed amount of RAM optimally is a long-solved problem in the Linux kernel. Managing RAM optimally in a virtual enviroment, however, is still a challenging problem because: (1) each guest kernel is busy optimizing its entire fixed RAM allocation oblivious to the needs of other guests, and (2) very little information is exposed to the virtual machine manager (VMM) to enable it to decide if one guest needs RAM more than another guest. Mechanisms such as "ballooning" and hot-plug memory (Schopp, OLS'2006) allow RAM to be taken from a "selfish" guest and given to a "needy" guest, but these have significant known issues and, in any case, don't solve the hard problem: Which guests are selfish and which are needy? IBM's Collaborative Memory Management (Schwidefsky, OLS'2006) attempts to collect information from each guest and provide it to the VMM, but was deemed far too complex and attempts to upstream it have so far been rebuffed.Transcendent Memory ("tmem" for short, see http://oss.oracle.com/projects/tmem) is a new approach to optimize RAM utilization in a virtual environment. Underutilized RAM from each guest, plus RAM unassigned to any guest ("fallow" memory), is collected into a central pool. Indirect access to that RAM is then provided by the VMM through a carefully crafted, page-copy-based interface. Linux kernel changes are required but are relatively small and not only provide valuable information to the VMM, but also furnish additional "magic memory" (which can be optionally compressed), provide performance benefits, and mitigate some of the issues that arise from ballooning/hotplug. We will introduce tmem and its implementation in the Xen environment, show how tmem can be used, describe the kernel changes required, and demonstrate tmem's advantages.

http://lca2010.linux.org.au - http://www.linux.org.au
CC BY-SA - http://creativecommons.org/licenses/by-sa/4.0/legalcode.txt