您当前的位置: 首页 > 

咸鱼弟

暂无认证

  • 8浏览

    0关注

    165博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

RDMA技术详解——DMA和RDMA概念

咸鱼弟 发布时间:2021-08-21 18:46:24 ,浏览量:8

1.1 DMA

DMA(Direct Memory Access,直接内存访问)是一种能力,允许在计算机主板上的设备直接把数据发送到内存中去,数据搬运不需要CPU的参与。如下图所示

        红线部分为传统内存访问,需要通过CPU进行数据copy来移动数据,通过CPU将内存中的Buffer1移动到Buffer2中。在DMA模式:可以同DMA Engine之间通过硬件将数据从Buffer1移动到Buffer2,而不需要操作系统CPU的参与,大大降低了CPU Copy的开销。

1.2 RDMA

RDMA是一种概念,在两个或者多个计算机进行通讯的时候使用DMA, 从一个主机的内存直接访问另一个主机的内存。

     

        RDMA是一种host-offload, host-bypass技术,允许应用程序(包括存储)在它们的内存空间之间直接做数据传输。具有RDMA引擎的以太网卡(RNIC)–而不是host–负责管理源和目标之间的可靠连接。使用RNIC的应用程序之间使用专注的QP和CQ进行通讯: 

1、每一个应用程序可以有很多QP和CQ

2、每一个QP包括一个SQ和RQ

3、每一个CQ可以跟多个SQ或者RQ相关联

如上图,在传统模式下,两台服务器上的应用之间传输数据,过程是这样的:

  • 首先要把数据从应用缓存拷贝到Kernel中的TCP协议栈缓存;
  • 然后再拷贝到驱动层;
  • 最后拷贝到网卡缓存。

多次内存拷贝需要CPU多次介入,导致处理延时大,达到数十微秒。同时整个过程中CPU过多参与,大量消耗CPU性能,影响正常的数据计算。

在RDMA 模式下,应用数据可以绕过Kernel协议栈直接向网卡写数据,带来的显著好处有:

  • 处理延时由数十微秒降低到1微秒内;
  • 整个过程几乎不需要CPU参与,节省性能;
  • 传输带宽更高。
关注
打赏
1663644285
查看更多评论
立即登录/注册

微信扫码登录

0.1799s