Scaling Up Memory Disaggregated Applications with Smart——论文泛读

本文提出Smart框架,通过改进门铃寄存器管理、缓存策略和CAS操作处理,有效解决RDMA应用中的性能瓶颈,实验证明能显著提升哈希表、事务处理和B+树等系统的性能。
摘要由CSDN通过智能技术生成

ASPLOS 2024 Paper  论文阅读笔记整理

问题

近期在RDMA网络方面的发展导致了内存分解的趋势。然而,每个计算节点的性能仍然受到网络的限制,特别是当它需要执行大量并发的细粒度远程访问时。根据我们的评估,现有的IOPS受限解聚应用在32个核心以上的规模上性能并不良好,因此无法充分利用当今的多核机器。

挑战

经过对RNIC内部架构的深入分析,我们发现今天的内存分解应用吞吐量受到三个主要的瓶颈的限制:(1) 门铃寄存器的隐式争用;(2) 由于过多未完成的工作请求引起的缓存崩溃; (3) 由于CAS重试失败导致的IOPS浪费。

现有方法局限性

现有的研究 [5, 16, 27, 41] 观察到RDMA操作的吞吐量,特别是依赖可靠连接(RC)的单边操作,随着并行性的增加(即并行执行RDMA操作的线程数量)而无法很好地扩展。研究人员推测这种可扩展性问题可能是由于RNIC内的缓存争用引起的。最近的RNIC设备通过芯片上的SRAM缓存提高了元数据对象访问的性能。由于RNIC必须通过PCIe DMA从DRAM中获取数据,这需要几微秒的时间 [41],所以缓存未命中会导致巨大的性能惩罚。为了缓解这个问题,提出了一种常用的优化方法,称为连接复用 [16, 52, 53],以减少队列对(QP)的总数,因为QP需要建立RC连接,因此需要被缓存以获得良好的性能。与为每个线程分配一个单独的QP不同,使用连接复用,多个线程共享一个QP,以减少资源争用的代价来换取并行性。然而,现有的研究 [16, 27] 已经表明,共享QP导致性能不佳,因为对QP的访问通过锁进行串行化。

本文方法

我们提出了Smart,一个RDMA编程框架,通过提供类似单边RDMA动词的接口来隐藏上述细节。

  • 通过通用的线程感知RDMA资源(例如门铃寄存器)分配机制,来解决门铃寄存器的隐式争用。

  • 提出了一种基于信用的节流策略,其中深度阈值是根据当前工作负载自动确定的,解决由于过多未完成的工作请求引起的缓存崩溃。

  • 提出了一种自适应退避技术,抑制不成功的CAS(compare-and-swap)操作的并发性,解决CAS重试失败导致的IOPS浪费。

我们用44行和16行代码用Smart重构了按部分分解的哈希表(RACE)和持久事务处理系统(FORD)的状态,分别将它们的吞吐量提高了132.4倍和5.2倍。我们还用Smart重构了Sherman(一个最近分解的B+树),并进行了额外的推测性查找优化(更改了48行代码),将其内存访问模式从带宽限制更改为IOPS限制,并将速度提高了2.0倍。

开源代码:https://github.com/hhyx/smart

实验环境

集群中使用了八台机器,每台机器都有两个Intel Xeon Gold 6240R CPU(共96核)、384 GB DRAM(32 GB×12)、1.5 TB Intel Optane DC持久内存(128 GB×12,5)和一个200 Gbps Mellanox ConnectX-6 InfiniBand RNIC。每个RNIC都连接到一个200 Gbps Mellanox InfiniBand交换机,RNIC在我们的测试平台上的硬件限制为110.0 MOP/s。这些机器与Ubuntu 20.04 LTS(Linux内核5.4.0)和 Mellanox OpenFabrics Enterprise Distribution for Linux(MLNX_OFED)v5.3-1.0.0.1 一起安装。

实验对比:吞吐量、延迟、可扩展性、消融实验、减少资源争用方面的有效性

总结

对RNIC内部架构进行深入分析,发现内存分解应用吞吐量受到三个主要的瓶颈的限制:(1) 门铃寄存器的隐式争用;(2) 由于过多未完成的工作请求引起的缓存崩溃; (3) 由于CAS重试失败导致的IOPS浪费。针对3个问题作者分别提出解决方案:通过通用的线程感知RDMA资源(例如门铃寄存器)分配机制,来解决门铃寄存器的隐式争用;提出了一种基于信用的节流策略,其中深度阈值是根据当前工作负载自动确定的,解决由于过多未完成的工作请求引起的缓存崩溃;提出了一种自适应退避技术,抑制不成功的CAS(compare-and-swap)操作的并发性,解决CAS重试失败导致的IOPS浪费。

  • 19
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

妙BOOK言

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

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

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

打赏作者

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

抵扣说明:

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

余额充值