RDMA网卡测试

查看网卡信息

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的单次数据传输。

对比测试

测试send带宽

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 -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

 

posted @ 2024-04-22 21:15  阿Qi早起了吗  阅读(2251)  评论(0)    收藏  举报