ZBLOG

RDMA

RDMA(Remote Direct Memory Access)详解

1. 什么是RDMA?

RDMA(远程直接内存访问) 是一种高性能网络通信技术,允许计算机直接从一台机器的内存读取或写入数据,而无需CPU参与。它绕过了操作系统内核和TCP/IP协议栈,大幅降低了延迟并提高了吞吐量。

2. RDMA的核心优势

  • 零拷贝(Zero-Copy):数据直接从应用缓冲区传输到网卡,无需内核缓冲区的复制。
  • 内核旁路(Kernel Bypass):避免内核上下文切换和协议栈处理开销。
  • 低延迟(Low Latency):通常延迟在微秒级(μs),远低于传统TCP/IP(毫秒级)。
  • 高带宽(High Bandwidth):支持100Gbps甚至更高速度的网络。

3. RDMA的实现方式

RDMA主要通过以下三种技术实现:

技术 特点
InfiniBand 专为RDMA设计的网络协议,需专用硬件(网卡、交换机),性能最优但成本高。
RoCEv1/v2 RDMA over Converged Ethernet(基于以太网的RDMA),v2支持标准IP路由,兼容性强。
iWARP 基于TCP的RDMA,兼容普通以太网,但性能略低于InfiniBand和RoCE。

4. RDMA的编程模型

主要使用以下API框架:

  • Verbs API:底层接口,提供最直接的RDMA操作(如IBM的libibverbs)。
  • 高级封装库
    • librdmacm:简化连接管理。
    • rsocket:兼容Socket接口的RDMA实现。
    • MPI over RDMA:用于高性能计算(HPC)。

典型工作流程

  1. 建立连接
    • 创建保护域(PD)、队列对(QP)、完成队列(CQ)。
    • 交换元数据(如内存地址、密钥)通过TCP/IP或InfiniBand管理通道。
  2. 注册内存区域(MR)
    • 应用缓冲区需显式注册为可远程访问的内存区域。
  3. 数据传输
    • Send/Recv:类似传统消息传递。
    • Read/Write:直接读写远端内存。

5. RDMA的应用场景

  • 高性能计算(HPC):如气象模拟、分子动力学。 -分布式存储系统 Ceph, SPDK, NVMe over Fabrics (NVMe-oF) -云计算与大数据 Spark RDMA加速, TensorFlow参数服务器 -金融交易系统 超低延迟的交易平台

###6.RDMA vs.TCP/IP性能对比 指标 RD MA T CP /IP 延迟 1~5 μ s 50~100 μ s CPU占用 近0% 高(需中断处理) 吞吐量 100 Gbps+ 受限于协议栈优化


###7.RD MA开发资源推荐 学习资料: 《深入浅出R DMA》电子书(零声教育) Int el官方R DMA编程指南

开源项目: rdma-core(GitHub) UCX(统一通信框架)

工具链: perftest(带宽/延迟测试) ibdump(流量抓包分析)

需要更详细的某个部分内容吗?比如具体代码示例或某场景优化方案?


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=8363

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?