vTMM: Tiered Memory Management for Virtual Machines——论文泛读

EuroSys 2023 Paper 论文阅读笔记整理

问题

虚拟机(VM)的内存需求正在增加,而传统的仅DRAM的内存系统容量有限,功耗高。分层存储系统可以有效地扩展存储容量,提高成本效率,例如使用非易失性内存(NVM)和CXL内存。与仅使用DRAM的虚拟机相比,具有分层内存的虚拟机的速度慢了2倍。

现有优化分层内存的方法是,将热页面放在快速内存,将冷页面放在慢速内存,通过页面跟踪、分类和迁移来实现这一目标。

但虚拟化为内存分层带来了新的挑战。

挑战和机遇

虚拟化带来的挑战:

  • 多虚拟机协同运行会产生激烈的内存竞争,导致缓存污染。同时虚拟机之间的性能隔离至关重要。

  • 虚拟化引入了VM上下文,应该最大限度地减少昂贵的VMTrap(即客户和主机之间的上下文切换)。

  • 虚拟机中多个协同运行的的应用程序可以表现出更多样的内存访问模式,对多虚拟机的页面放置策略提出了新的挑战。

  • VM存储器过度使用需要优化,理想的管理应该在多个虚拟机之间动态平衡快速内存,以获得更好的整体性能。

虚拟化带来的机遇:

  • 利用硬件辅助的虚拟化技术。Intel页面修改日志记录(PML)旨在跟踪VM实时迁移的脏页面[3,26]。通过PML,可以跟踪访问的脏页面,而不是所有的页面,以提高页面跟踪效率。当在快速内存和慢速内存间迁移页面时,PML还可以用很少的VMTrap有效地处理脏页面。

  • 内存虚拟化引入了二维地址映射。通过操作客户物理地址到主机物理地址的映射,可以根据内存访问模式透明地调整VM快速内存的大小。可以利用页面迁移和重新映射,而不是采用传统的低效膨胀机制[22]。来实现多个虚拟机之间的动态内存分区。

本文方法

本文提出了vTMM,专门为虚拟化设计的分层内存管理系统。vTMM自动确定页面热度,并在快慢内存之间迁移页面以获得更好的性能,并利用虚拟化中独特的系统特性来应对上述挑战。

  • 通过页面修改日志记录(PML)和多级队列设计来跟踪内存访问。通过定期扫描客户页表(GPT)来记录和清除访问/脏(A/D)位,从而跟踪VM页面访问。通过只扫描PML记录的脏的GPT,而不是整个GPT,有效地减少了扫描时间,但开销仍很高。vTMM在虚拟机中嵌入了一个内核模块,用于在扫描GPT之前将GPT地址传递给系统管理程序。采用多级队列,将更频繁访问的页面放在更高的级别,并降低跟踪频率。这种基于局部性的设计可以进一步降低跟踪成本,同时保留存储器访问模式。

  • 量化页面温度,并使用桶排序进行细粒度页面分类。页面的温度是其读写频率的加权组合,其中权重分别来自读和写的成本。随后根据页面温度进行桶排序,并根据VM快速内存的大小分配热集。

  • 使用PML执行页面迁移。并行复制页面,并以最小的VM页面访问停顿处理脏页面。在迁移后主动填充Intel扩展页表(EPT)的新映射,以避免EPT页错误引起的VMTraps[26,35]。

  • 通过二维页表透明地调整VM内存的大小来避免资源过度使用。通过共享内存池来动态分区内存,动态迁移慢速内存的分配,提高了慢速内存的利用率和整体性能。

在真实的DRAM+NVM系统和模拟的CXL内存系统上评估vTMM。结果表明,vTMM在VM分层内存管理方面优于NUMA均衡、Intel Optane内存模式和Nimble(操作系统级分层内存管理系统)。多虚拟机协同运行结果表明,vTMM将DRAM+NVM系统的性能提高了50%−140%,将CXL内存系统的性能提高了16%−40%。

实验

实验环境:在2.2 GHz的双插槽Intel Cascade LakeSP系统上运行评估,每个插槽有24个内核/48个线程,所有虚拟机的CPU都固定在一个插槽上。对于常规页面和大页系统中的实验,虚拟机分别配置为8核和16核。物理机器和虚拟机都运行带有Linux内核5.4.142的Ubuntu 18.04。选择QEMU 3.1.0作为虚拟化框架,支持从不同的NUMA节点分配内存,并为VM固定内存。构建了两层内存系统:(1) 真正的DRAM+NVM系统,具有32GB的本地DRAM和192GB的PMem。系统启用APP直接模式[24],并将PMem安装为NUMA节点。(2) NUMA模拟的CXL内存系统,具有32GB的本地DRAM和192GB的远程DRAM。

数据集:SPEC CPU2006[12]的429.mcf(具有3.2 GB RSS)、graph500(具有19 GB RSS)[14]、redis[33](具有32 GB RSS)

实验对比:页面跟踪使用内存、页面跟踪速度、跟踪页面访问频率、页面合并开销、执行性能、

实验参数:热页比率、数据集、DRAM大小、

总结

针对虚拟化场景的分层存储系统,核心思想是将热页面放在快速内存,冷页面放在慢速内存,通过页面跟踪、分类和迁移来实现这一目标。本文提出了vTMM,包括4个创新点:(1)通过页面修改日志记录(PML)和多级队列设计来跟踪内存访问。只扫描PML记录的脏的客户页表(GPT),减少跟踪页面数量。采用多级队列,降低频繁访问页面的跟踪频率。(2)量化页面温度,并使用桶排序进行细粒度页面分类。页面的温度是其读写频率的加权组合,其中权重分别来自读和写的成本。根据页面温度进行桶排序,并根据VM快速内存的大小分配热集。(3)使用PML执行页面迁移。并行复制页面,在迁移后主动填充Intel扩展页表(EPT)的新映射,以避免EPT页错误引起的VMTraps。(4)通过二维页表透明地调整VM内存的大小来避免资源过度使用。用共享内存池来动态分区内存,动态迁移慢速内存的分配,提高了慢速内存的利用率和整体性能。

  • 28
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值