ibv_devices
系统中所有的 RDMA 设备,包括其名称和端口信息
ibstat
显示系统中所有的 RDMA设备的详细信息,包括名称、状态
ibv_devinfo
显示系统中所有的 RDMA 设备的详细信息,包括名称、端口信息、状态
ibdev2netdev
列出RDMA设备与其对应的网络设备之间的映射关系,包括RDMA 设备的索引、名称和对应的网络设备的名称等信息
bv_xxx_pingpong
1. **`ibv_rc_pingpong`:** 用于测试 Reliable Connection (RC) 的性能。
2. **`ibv_uc_pingpong`:** 用于测试 Unreliable Connection (UC) 的性能。
3. **`ibv_ud_pingpong`:** 用于测试 Unreliable Datagram (UD) 的性能。
RDMA通信链路可以被配置为3种模式,分别是可靠连接(reliable connection,RC)、不可靠连接(unreliable connection,UC)和不可靠数据报(un-reliable datagram,UD).其中,UD采用面向无连接的数据报发送方式,支持点对点和点对多的数据传输,而RC和 UC模式仅支持点对点的面向连接的数据传输.另外,UD模式支持的最大数据传输单元为4KB,而RC和UD模式支持多达2GB的单次数据传输。
对比测试
测试网络带宽
RDMA
服务端:
ib_send_bw -d mlx5_0
客户端:
ib_send_bw -d mlx5_0 172.25.6.70 --report_gbits
Device:指定了使用的 InfiniBand 设备,这里是 mlx5_0。
Number of qps:表示用于测试的队列对数量,这里是1个。
Transport type:表示传输类型,这里是 InfiniBand(IB)。
Connection type:表示连接类型,这里是 Reliable Connection(RC)。
Using SRQ:表示是否使用了 Shared Receive Queue(SRQ),这里是未使用。
PCIe relax order:表示是否启用了 PCIe 松弛顺序,这里是已启用。
ibv_wr API*:表示是否使用了 InfiniBand Verbs API,这里是已启用。
RX depth:表示接收队列的深度,这里是512。
CQ Moderation:表示完成队列(Completion Queue)的调节,这里是1。
Mtu:表示最大传输单元(MTU),这里是1024字节。
Link type:表示连接类型,这里是 Ethernet 连接。
GID index:表示全局唯一标识符(GID)的索引,这里是5。
Max inline data:表示最大内联数据量,这里是0字节。
rdma_cm QPs:表示是否使用了 RDMA Connection Manager(rdma_cm),这里是未使用。
Data ex. method:表示数据交换的方法,这里是通过 Ethernet 进行的数据交换。
接下来的部分是测试结果:
#bytes:每个数据包的字节数。
#iterations:进行的迭代次数。
BW peak[MB/sec]:带宽峰值,即测试中达到的最高带宽,以兆字节每秒(MB/sec)为单位。
BW average[MB/sec]:平均带宽,即测试中的平均传输速率,以兆字节每秒(MB/sec)为单位。
MsgRate[Mpps]:消息传输速率,以百万个每秒(Mpps)的消息数为单位。
TCP/IP
服务器:
iperf -s