HeMem: Scalable Tiered Memory Management for Big Data Applications and Real NVM——论文泛读

SOSP 2021 Paper 论文阅读笔记整理

问题

高容量非易失性存储器(NVM)是一种新的主存层。分层DRAM+NVM服务器将总内存容量增加了8倍,但如果管理不善,内存带宽可能会减少7倍,延迟可能会增加63%。但现有的Intel Optane DC NVM上的软硬件分层内存管理系统并不能够最大限度地提高应用程序性能。

为了支持分层内存,供应商在硬件中提供分层内存[20],且不需要操作系统支持。例如,英特尔的Optane DC内存模式将DRAM视为直接映射缓存。但缺点是对使用内存的应用程序几乎没有可见性,也无法区分同时访问主存的不同进程,且必须依赖于可以在硬件中高效实现的简单内存跟踪技术。

软件管理分层内存的方法包括:基于操作系统[22,39]和基于语言[17],但这些研究使用模拟NVM进行评估,并没有捕捉到商用NVM的性能特征。具体而言,基于操作系统具有开销,无法扩展到商用NVM的容量。现有系统也不支持非对称读/写存储器性能,并且灵活性有限。

本文方法

本文提出了HeMem,一个分层内存管理系统,为商用NVM和大数据应用程序设计。无需页面访问位跟踪、相关TLB故障和内存复制,且支持各种内存访问和分配模式,支持性能隔离。

  • 异步内存访问采样。利用页表访问和脏位的内存访问跟踪方法具有较高的CPU开销,无法扩展到大存储容量。HeMem通过采样访问DRAM和NVM的虚拟内存的CPU事件来跟踪内存访问模式。进一步利用基于处理器事件的采样(PEBS),异步处理CPU记录到缓冲区中的批量采样内存事件。

  • 异步内存管理。由于内存迁移和地址转换硬件的相关维护,基于操作系统的内存管理会带来更多的CPU开销。HeMem使用DMA异步迁移内存[28],在应用程序执行时批处理内存管理任务。

  • 数据可扩展性感知。许多操作系统内核结构和许多应用程序级结构,如缓冲区、队列和堆栈,都很小,而且往往是短暂的。它们最好留在DRAM中。

  • 非对称NVM带宽。NVM读/写带宽是不对称的,是DRAM带宽的一小部分,而NVM访问延迟略低于DRAM的延迟。HeMem跟踪重写数据结构,将其放置在DRAM中。

  • 灵活性。HeMem将内存管理置于用户级库中,能够以很少的开销监视应用程序内存访问和分配模式,从而实施每个应用程序的内存管理策略。

在采用Intel Optane DC NVM的系统上,HeMem的性能优于基于硬件、操作系统和PL的分层内存管理,在不修改应用程序的情况下,为GAP图处理基准提供了高达50%的运行时间减少,为Silo内存数据库上的TPC-C提供了13%的吞吐量增加,NVM磨损比最佳解决方案减少了10倍。在性能隔离下,键值存储的尾延迟降低了16%。

总结

针对DRAM和NVM组成的分层内存的管理,基于硬件方法无法区分不同应用程序,基于软件的方法性能开销高。本文提出HeMem,包括以下技术:(1)异步分析采样的CPU事件,区域页面冷热。(2)异步内存管理,在程序执行时异步批处理迁移内存。(3)区分读写事件,将重写数据结构放置在DRAM中。(4)实现为用户级库,为每个应用实施内存管理策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

妙BOOK言

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

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

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

打赏作者

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

抵扣说明:

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

余额充值