RDMA网卡测试
查看网卡信息
ibv_devices
ibstat
ibv_devinfo
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的单次数据传输。

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 -i 2
客户端
iperf -c 172.25.6.70 -i 1 -t 30

测试结果
Interval: 测试间隔时间。
Transfer: 在每个间隔内传输的数据量。
Bandwidth: 在每个间隔内的带宽,以 Mbits/sec(兆位每秒)为单位。
可以看到,在每个间隔内,大约传输了 224 兆字节的数据,并且带宽维持在大约 942 Mbits/sec 左右。整个测试持续了 60 秒,总共传输了约 6.58 GB 的数据,平均带宽为 942 Mbits/sec
测试write带宽
RDMA
服务端
ib_write_bw -d mlx5_0 -a -F
客户端
ib_write_bw -d mlx5_0 -i 1 172.25.6.70 -n 1000 -F --report_gbits -a

测试结果
#bytes: 数据传输的大小(以字节为单位)。
#iterations: 迭代次数。
BW peak[MB/sec]: 带宽峰值,以兆字节每秒(MB/s)为单位。
BW average[MB/sec]: 平均带宽,以兆字节每秒(MB/s)为单位。
MsgRate[Mpps]: 消息速率,以百万消息每秒(Mpps)为单位。
TCP/IP
测试write时延
RDMA
服务器
ib_write_lat -d mlx5_0 -a
客户端
ib_write_lat -d mlx5_0 -i 1 172.25.6.70 -n 1000 -F -a

测试结果
#bytes: 消息大小(以字节为单位)。
#iterations: 迭代次数。
t_min[usec]: 最小时间,以微秒(μs)为单位。
t_max[usec]: 最大时间,以微秒(μs)为单位。
t_typical[usec]: 典型时间,以微秒(μs)为单位。
t_avg[usec]: 平均时间,以微秒(μs)为单位。
t_stdev[usec]: 时间标准偏差,以微秒(μs)为单位。
99% percentile[usec]: 百分位数为99的时间,以微秒(μs)为单位。
99.9% percentile[usec]: 百分位数为99.9的时间,以微秒(μs)为单位
百分位数为99的时间表示在一组数据中,有99% 的数据小于或等于这个时间值,而有1% 的数据大于这个时间值。换句话说,它表示了在这组数据中,99% 的数据点都在这个时间值以下,而仅有1% 的数据点在这个时间值以上。
在你提供的数据中,"99% percentile[usec]" 列显示了百分位数为99的时间,以微秒(μs)为单位。这个值代表了在每次测试中,99% 的数据点的时间值都小于或等于这个时间。通常情况下,百分位数为99的时间可以作为评估系统性能的一个指标,特别是在了解数据分布的上限时。
测试read时延
RDMA
服务器
ib_read_lat -d mlx5_0 -a
客户端
ib_read_lat -d mlx5_0 -i 1 172.25.6.70 -n 1000 -F -a




浙公网安备 33010602011771号