Johnny Cache: the End of DRAM Cache Conflicts (in Tiered Main Memory Systems)——论文泛读

本文介绍了一种名为JohnnyCache的方法,通过改进内存分配策略,尤其是引入静态技术和动态技术,有效降低分层内存系统(DRAM+PMEM)的缓存冲突,显著提升性能,尤其在HPC应用中表现优于传统Linux分层内存管理和HeMem。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OSDI 2023 Paper 论文阅读笔记整理

问题

与当前的软件管理方法相比,分层内存系统(DRAM+PMEM)的硬件管理为许多应用程序提供了更好的性能。硬件管理将快速层视为慢速层的缓存,其优点是可以以缓存行粒度进行缓存,并且数据一被访问就出现在快速内存中。但缓存冲突导致这些硬件方法通常性能较差。

现有方法局限性

  • 基于软件方法:分配完DRAM的空间再分配PMEM,监视内存访问情况进行热数据迁移,用额外的进程将热数据从PMEM迁移到DRAM。总的存储容量为DRAM+PMEM。缺点:导致热数据在系统迁移前一直在PMEM上,有性能分析和数据迁移的额外开销,数据的粒度为页(4KB/2MB)。

  • 基于硬件方法:使用PMEM内存模式,把DRAM当作L4 Cache,DRAM作为PMEM的直接映射缓存。总的存储容量为PMEM。优点:数据经过访问就会出现在DRAM上,数据的粒度为缓存行(64B)。缺点:缓存冲突问题,带来脏页写回开销(DRAM和CPU缓存上都存在)。

挑战

缓存冲突源于生日悖论,假设缓存容量是365,23次随机内存访问导致冲突概率超过50%。而Linux页随机分配机制不考虑缓存位置,导致多个PMEM上的页很可能会映射到相同的DRAM缓存位置,从而带来缓存冲突。虽然DRAM的缓存很大,但是很多页倾向于映射到相同位置,系统只用到了一部分DRAM缓存区域。

本文方法

本文提出了低开销冲突避免技术,几乎完全消除了缓存冲突。提出两种技术:

  • 静态技术。在页面分配时避免页面之间的冲突。原本缓存是直接映射,一个DRAM位置对应多个RMEM页。修改内核的page_fault和page_umap,在分配新的PMEM物理页时,从DRAM缓存位置出发,分配其下对应的PMEM物理页地址。【先选择未使用的DRAM位置,随后将PMEM页分配到该位置】

  • 动态技术。依赖于监视内存访问来区分热页面和冷页面,当同一个缓存中出现两个热页,将其中一个热页重新映射到其他缓存上。

在Johnny Cache(JC)系统中的Intel Optane机器上的Linux内核中实现了这些技术。并使用HPC应用程序、键值存储和数据库,将JC与默认的Linux分层内存管理和HeMem进行比较。实验结果表明,在大多数应用程序中,JC的性能优于Linux和HeMem,在某些情况下高达5倍。得出了一个结论,缓存可以通过在页面分配时最小化冲突来提供接近最优的性能,而无需任何访问监控或动态页面重映射。

实验

实验环境:双节点NUMA机器,每个NUMA节点20个内核,内核为 Intel Xeon Gold 6230、2.10GHz,128GB DRAM,8*128GB的Intel Optane NV DIMM(每个NUMA节点64GB DRAM和512GB PMEM)。

数据集:GUPS、BC[4]、Silo[22] TPC-C、Masstree[16] YCSB

实验对比:DRAM性能、吞吐量、运行时间、尾延迟

实验参数:时间、线程数、热数据数量、数据集

总结

针对DRAM和PMEM的分层内存系统,如何优化内存分配,基于硬件的分配方法,用DRAM作为PMEM的缓存,但缓存冲突率高。本文提出Johnny Cache,低开销冲突避免技术。(1)静态技术,在页面分配时避免页面间冲突。在分配新的PMEM物理页时,从DRAM缓存位置出发,先选择未使用的DRAM位置,随后将PMEM页分配到该位置。(2)动态技术,依赖于监视内存访问来区分冷热页面。当同一个缓存中出现两个热页,将其中一个热页重新映射到其他缓存上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

妙BOOK言

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

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

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

打赏作者

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

抵扣说明:

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

余额充值