【RDMA】infiniband提升Redis性能|UC,RC,UD,RD|时延性能比较

目录

RDMA传输层4种传输模式

infiniband应用到Redis之后的提升效果

WAN上InfiniBand传输服务的实验分析 (RC|UC|WRITE|READ|SEND)

RC和UD性能比较


RDMA传输层4种传输模式

https://www.mellanox.com/related-docs/prod_software/RDMA_Aware_Programming_user_manual.pdf

RDMA 架构与实践 | https://houmin.cc/posts/454a90d3/

按照[连接]和[可靠]两个标准,可以划分出下图四种不同的:

RDMA支持多种传输模式,以满足不同场景下的通信需求。以下是RDMA的四种主要传输模式:

  1. 可靠连接(Reliable Connection, RC)

    • 特点

      • 面向消息:数据被处理为离散的消息进行传输,而不是流。
      • 可靠传输:提供端到端的可靠性保证,确保数据完整、有序地到达接收方。
      • 连接绑定:通信两端的队列对(Queue Pair, QP)是一一绑定的,类似于TCP连接。
    • 应用场景

      • 适用于需要高可靠性和有序数据传输的场景,如分布式存储系统中的数据同步和备份。
      • 在高性能计算集群中,用于节点之间的可靠通信和数据传输。
  2. 不可靠连接(Unreliable Connection, UC)

    • 特点

      • 面向消息:与RC模式相同,数据以消息的形式传输。
      • 不可靠传输:不提供端到端的可靠性保证,数据可能会丢失或乱序到达。
      • 连接绑定:通信两端的队列对(Queue Pair, QP)是一一绑定的。
    • 应用场景

      • 适用于对可靠性要求不高,但对性能要求较高的场景,如某些实时性要求较高的应用。
      • 在一些容错机制较强的分布式系统中,可以用于提高数据传输的效率。
  3. 不可靠数据报(Unreliable Datagram, UD)

    • 特点

      • 面向消息:数据以消息的形式传输。
      • 不可靠传输:不提供端到端的可靠性保证,数据可能会丢失或乱序到达。
      • 无连接绑定:通信两端的队列对(Queue Pair, QP)不做一一绑定,类似于UDP通信。
    • 应用场景

      • 适用于对可靠性要求不高,但对性能要求极高的场景,如某些实时性要求极高且能够容忍一定数据丢失的应用。
      • 在某些分布式系统中,可以用于提高数据传输的灵活性和效率。
  4. 可靠数据报(Reliable Datagram, RD)

    • 特点

      • 面向消息:数据以消息的形式传输。
      • 可靠传输:提供端到端的可靠性保证,确保数据完整、有序地到达接收方。
      • 无连接绑定:通信两端的队列对(Queue Pair, QP)不做一一绑定。
    • 应用场景

      • 目前支持情况:需要注意的是,目前多数网卡厂商还不支持RD模式,因此在实际应用中较为少见。
      • 潜在应用:如果RD模式得到广泛支持,它将适用于需要高可靠性但又不希望受到连接绑定限制的场景,提供更灵活的数据传输方式。

总结

可靠连接(RC)模式提供高可靠性和有序数据传输,适用于对可靠性要求较高的场景;

不可靠连接(UC)和不可靠数据报(UD)模式提供更高的性能,但牺牲了一定的可靠性,适用于对性能要求较高的场景;

可靠数据报(RD)模式则结合了可靠性和灵活性,但目前支持情况有限。在实际应用中,需要根据具体的需求和网络环境选择合适的传输模式。

  • 可靠连接(RC)一个QP只和另一个QP相连,消息通过一个QP的发送队列可靠地传输到另一个QP的接收队列。数据包按序交付,RC连接很类似于TCP连接。
  • 不可靠连接(UC)一个QP只和另一个QP相连,连接是不可靠的,所以数据包可能有丢失。传输层出错的消息不会进行重传,错误处理必须由高层的协议来进行。
  • 不可靠数据报(UD)一个 QP 可以和其它任意的 UD QP 进行数据传输和单包数据的接收。不保证按序性和交付性。交付的数据包可能被接收端丢弃。支持多播消息(一对多),UD连接很类似于UDP连接。

每种模式可用的操作如下表所示(不可靠的数据报(UD),不支持memory verbs:write,read):

2.2.3 Unreliable Datagram (UD)

QP可以向任何其他UD-QP发送或从任何其他UD-QP接收单分组消息。

Ordering and delivery 不受保证,交付的数据包可能会被接收方丢弃。

支持多播消息(一对多)。

UD连接与UDP连接非常相似。

infiniband应用到Redis之后的提升效果

国防科技大学论文:

连接:http://ir.nsfc.gov.cn/paperDownload/ZD2959605.pdf

原文:http://ir.nsfc.gov.cn/paperDownload/ZD2959605.pdf

测试环境:

x86-64

2.10GHz Intel Xeon E5-2620L 6-core processors, featuring 32KB for L1 instruction and data caches, 256KB L2 and 15MB L3 cache.

16GB.

Mellanox MT27500 ConnectX-3 40 GbpsInfiniBand HCA

Red Hat Enterprise Linux Server 6 ,kernel 2.6.32.

测试工具:

InfiniBand verbs performance test tool

如:ib_send_lat, ib_read_lat, ib_write_lat

测试结果:

Inlined模式下,小于256个字节的小消息可以inline在WR中,以避免RDMA NIC通过DMAread提取小消息。这种方法可以有效地避免DMA操作从而减少延迟。

图1表明:

当消息size 小于256 bytes时,inlined 的SEND/RECV 可以明显的降低时延

不用 inlined 的SEND/RECV 操作在UD 传输时也可以轻微降低时延,但效果不明显。

图2表明,与SEND / RECV操作相似,在传输小消息时,使用inlined的RDMA write在RC传输和UC传输上具有较低的延迟。

图3表明,inlined的RDMA write 在UC传输的时延比RC传输的时延低。

而图4表明,非inlined的RDMA write在UC传输时不比RC传输具有更好的性能。

WAN上InfiniBand传输服务的实验分析 (RC|UC|WRITE|READ|SEND)

橡树岭国家实验室(美)测试结果

https://www.cs.fsu.edu/~yuw/pubs/2008-NAS-Yu.pdf

RC和UD性能比较

《Scalable Network Communication using Unreliable RDMA》Scalable Network Communication using Unreliable RDMA. (Conference) | OSTI.GOV

《最小化RDMA的通信的延迟》

https://tdk.bme.hu/VIK/DownloadPaper/sdf9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值