分享自:

基于CXL的HydraRPC:CXL时代的高性能远程过程调用

期刊:2024 USENIX Annual Technical Conference

本文介绍了一项名为HydraRPC的研究,该研究由来自阿里巴巴集团、浙江大学、清华大学和北京大学的团队共同完成,并于2024年7月10日至12日在美国圣克拉拉举行的USENIX年度技术会议上发表。该研究提出了一种基于CXL(Compute Express Link)的新型远程过程调用(RPC)架构,旨在通过利用CXL的高性能内存共享特性,显著提升分布式系统中RPC的性能和效率。

研究背景与动机

RPC(Remote Procedure Call,远程过程调用)是分布式系统中的一项基础技术,它允许客户端像调用本地函数一样调用远程服务器上的函数,从而简化了客户端与服务器之间的交互。然而,传统的RPC实现依赖于消息传递机制,这导致了较高的网络延迟、数据复制和序列化/反序列化开销,尤其是在现代数据中心中,性能和可扩展性成为了RPC系统的主要瓶颈。

近年来,CXL作为一种新兴的高速、低延迟、缓存一致性的互连技术,为RPC系统的优化提供了新的可能性。CXL通过其HDM(Host-managed Device Memory,主机管理设备内存)特性,允许多台机器共享内存,从而避免了传统网络通信中的高开销。基于此,研究团队提出了HydraRPC,旨在利用CXL的共享内存特性,构建一种高效、低延迟的RPC系统。

研究目标

HydraRPC的主要目标是通过CXL HDM实现跨节点的RPC通信,消除传统RPC中的网络往返、内存复制和序列化/反序列化开销。具体来说,研究团队希望解决以下三个关键问题: 1. 如何设计RPC的控制平面和协议,以充分利用CXL HDM的潜在性能; 2. 在CXL HDM仅提供共享内存接口的情况下,如何高效地通知CPU请求/响应的到达; 3. 如何在RPC场景中管理CXL HDM。

研究方法与流程

HydraRPC的设计基于CXL HDM的共享内存特性,通过绕过CPU缓存和使用非缓存共享机制,实现了高效的数据传输。具体来说,研究团队开发了以下关键技术: 1. 非缓存共享机制:为了避免CPU缓存的干扰,HydraRPC使用了两种机制来绕过CPU缓存:一种是基于Intel的MTRR(Memory Type Range Registers,内存类型范围寄存器)技术,另一种是通过非临时访问指令(如clflushntstore)直接写入CXL HDM。 2. 无忙轮询的通知机制:为了减少CPU的轮询开销,HydraRPC使用了基于SSE3的monitor/mwait指令,使得CPU可以在等待数据时进入低功耗状态,从而降低CPU利用率。 3. 滑动窗口协议:为了控制数据传输的流量,HydraRPC引入了滑动窗口协议,确保在高并发场景下能够高效地处理多个RPC请求。

研究团队在真实的CXL硬件平台上对HydraRPC进行了评估,使用了基于Intel Agilex FPGA和Sapphire Rapids CPU的硬件架构。实验结果表明,HydraRPC在单连接场景下能够实现620kops的吞吐量,比现有的MRPC和基于RDMA的RPC分别高出1.6倍和3.1倍。此外,HydraRPC的最低RPC延迟仅为1.47微秒,且具有良好的可扩展性,能够在96个RPC连接的情况下仅产生19%的性能下降。

主要结果与贡献

  1. 性能提升:HydraRPC在吞吐量和延迟方面均显著优于现有的RPC实现。实验结果显示,HydraRPC的吞吐量在64字节的请求大小下达到了620kops,比MRPC和RDMA-based RPC分别高出1.6倍和3.1倍。此外,HydraRPC的最低延迟仅为1.47微秒,比MRPC的7.60微秒和RDMA-based RPC的5.10微秒有显著提升。
  2. 可扩展性:HydraRPC在96个RPC连接的情况下仍能保持较高的性能,仅产生19%的性能下降,显示出其良好的可扩展性。
  3. CPU利用率优化:通过使用无忙轮询的通知机制,HydraRPC在低请求率场景下的CPU利用率仅为45%,显著低于传统的忙轮询机制。

研究意义与价值

HydraRPC的研究为分布式系统中的RPC通信提供了一种全新的解决方案,特别是在CXL技术逐渐普及的背景下,HydraRPC展示了如何利用CXL的共享内存特性来显著提升RPC的性能和效率。该研究不仅为学术界提供了新的研究方向,也为工业界提供了实际的应用价值,特别是在需要低延迟、高吞吐量的数据中心场景中,HydraRPC具有广泛的应用前景。

研究亮点

  1. 创新的RPC架构:HydraRPC首次将CXL HDM的共享内存特性应用于RPC系统,提出了基于非缓存共享和无忙轮询通知机制的新型RPC架构。
  2. 显著的性能提升:与现有的RPC实现相比,HydraRPC在吞吐量和延迟方面均有显著提升,特别是在高并发场景下表现出色。
  3. 实际硬件验证:研究团队在真实的CXL硬件平台上对HydraRPC进行了验证,确保了其在实际应用中的可行性和性能表现。

结论

HydraRPC通过利用CXL的共享内存特性,成功构建了一种高效、低延迟的RPC系统。该研究不仅展示了CXL技术在分布式系统中的潜力,也为未来的RPC系统设计提供了新的思路。随着CXL技术的进一步发展,HydraRPC有望在数据中心和云计算领域得到广泛应用。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com