首页 > 解决方案 > 如何测试 RDMA 读取选项的传输速率

问题描述

我想计算 RDMA 的数据传输率。使用带宽被宣布为 200Gbps 的 ConnectX-5。我使用 RDMA 读取操作编写数据传输代码。我在 ibv_post_send() 之前设置了开始时间戳,并在我得到操作码为 IBV_WC_RDMA_READ 的 cq 之后设置了结束时间戳。计算速率,我得到的传输速率约为 268.4 Tbps,超过了限制。我发现获得 CQ 元素并不意味着数据实际映射到本地。所以使用 memcpy 复制数据一次,计算时间 t1=end-begin; 然后我使用 memcpy 复制相同大小的数据并仅计算复制时间 t2。速率=data_size/(t1-t2)。尽管如此,我还是得到了 185.6Gps,也超过了极限。问题:1.我设置时间戳的方式对吗?如果没有,如何正确设置时间戳或如何设计实验来计算传输率。2. Mellanox 宣称的 100Gps 传输速率是什么意思?是数据包传输速率还是读/写/发送/接收操作?

标签: rdma

解决方案


正如评论中所建议的,测试性能的一种常用方法是通过 perftest,这是一组带宽和延迟基准,特别是 ib_read_bw 用于您的案例中的 READ 操作。

ib_read_bw 的配置选项在此处及其-h选项中有详细说明。

此链接还向您介绍有关perftest 包的页面。


推荐阅读