An Empirical Study of Memory Sharing in Virtual Machines
An Empirical Study of Memory Sharing in Virtual Machines
此论文是ATC’12上的一篇文章,今天特意总结一下,希望对读者会有所帮助。
相关资料
- An Empirical Study of Memory Sharing in Virtual Machines
这里可以下载到paper与slides,同时还有音频资料。 - 作者
姓名 | 主页 | 谷歌学术 | dblp |
---|---|---|---|
Sean Barker | Sean Barker | Sean Barker | Sean Barker |
Timothy Wood | Timothy Wood | Timothy Wood | Timothy Wood |
Prashant Shenoy | Prashant Shenoy | Prashant Shenoy | Prashant Shenoy |
Ramesh Sitaraman | Ramesh Sitaraman | Ramesh Sitaraman |
概念
我们将内存重删分为两个基本类别:Self-sharing和Inter-VM sharing。
- Self-sharing: 单个虚拟机内部的内存重删
- Inter-VM sharing: 多个虚拟机之间的内存重删
- 现实系统内存重删:内存重删往往考虑的场景是在虚拟化环境下,重删的内存也是虚拟机占用的内存,现实系统考虑的是整个系统内存的重删,而不单单局限于虚拟机的内存。
摘要
- 我们观察到绝对重删效果(不包括零页)通常保持在15%以下,而以前的工作经常宣称可以节省30%以上内存。
- 在一组虚拟机中,Self-sharing往往会占据大部分的重删,而Inter-VM sharing对重删的贡献则较小。而且,机器之间的差异也大大降低了机器间重删的可能性。
- 我们发现操作系统功能,如地址空间布局随机化,可以进一步降低去重效果。
总结
在大多数情况下,主要的去重效果归因于单个虚拟机机中的冗余(Self-sharing),而不是在多台机器之间(Inter-VM sharing)。 这表明:
- 可以在单个虚拟机而不是Hypervisor级别上有效地利用重删
- 重删完全不需要限制在虚拟化系统中
操作系统同质性是Inter-VM sharing最重要的因素,应用程序,体系结构和版本的同质性对Inter-VM sharing重要性则小一些(但仍然很重要)。特别地,我们看到,不同的平台之间,例如Windows和Linux系统之间没有Inter-VM sharing。通过更改基本系统的版本, Inter-VM sharing仍然存在,但大大减少。
我们在Linux系统中进行Self-sharing的研究,发现GUI应用程序和相关系统库是Self-sharing最重要的来源。
我们探讨地址空间布局随机化对去重效果的影响,发现在所有系统中,这一特征对去重效果具有一定的负面影响。