Large Pages and Lightweight Memory Management in Virtualized Environments

此论文是MICRO’15上的一篇文章,今天特意总结一下,希望对读者会有所帮助。

相关资料

摘要

我们利用硬件来解决大页与小页之间的冲突,使用猜测技术将连续对齐的小页分组翻译,以便它们接近大页地址转换的性能。 Generalized Large-page Utilization Enhancements (GLUE)允许hypervisor拆分大页进行敏捷内存管理,同时几乎保留大页的TLB性能。

介绍

  • 大页的优点
  • 大页的缺点
  • 大页vs小页

方法

我们发现一个现象:通常拆分大页是为了实现更细粒度的内存管理,而不是从根本上改变虚拟或物理地址空间。 因此,绝大多数小页保留虚拟和物理地址空间中的原始邻接和对齐特性,从而允许它们被合并到大页中。

下图说明了GLUE的操作:

  • guest virtual pages (GVPs)
  • guest physical pages (GPPs)
  • system physical pages (SPPs)

    我们假设四个连续的PTE成为一个大页,因此客户机page table可以将GVP 0-3的PTE组合成一个大页(与GVP 4-7的PTE相同)。

大页拆分的场景

这部分内容总结的较好,讲述了在实际应用中拆分大页的场景,这些知识可以拓展自己的视野。

页面共享

在内存去重时,我们往往会将大页进行拆分。

NUMA

在NUMA系统中,大页会带来许多弊端,因此,需要拆分大页。

工作集取样

在hypervisor对工作集进行取样的时候,会拆分大页。

Live的VM迁移

在不断开客户端的情况下进行VM的迁移时,会以小页为单位进行迁移。

有限的大页支持

结论

我们使用TLB猜测的硬件技术来解决大页与小页之间的冲突,从而同时获得大页与小页的优势。