rdma - 如何测试 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 传输速率是什么意思?是数据包传输速率还是读/写/发送/接收操作?
解决方案
正如评论中所建议的,测试性能的一种常用方法是通过 perftest,这是一组带宽和延迟基准,特别是 ib_read_bw 用于您的案例中的 READ 操作。
ib_read_bw 的配置选项在此处及其-h
选项中有详细说明。
此链接还向您介绍有关perftest 包的页面。
推荐阅读
- regex - 基于 Elasticsearch 字符串的查询以匹配正则表达式
- r - 在 R 中使用 'which' 和矩阵 - 'is.element()' 条件
- java - 如何复制远程目录中的所有文件?
- javascript - 图像的缩放按钮 - 不知道如何
- javascript - 如何访问 iframe 中的元素
- json - 使用 Power Query(M 语言)动态展开 JSON 中的所有列
- ios - 从设备和云存储服务上传和下载图像或文件(文档、PDF)到 iOS 应用程序
- mysql - 有没有办法让行匹配?(除了受影响的行)
- javascript - MVC Javascript 和 AJAX,复选框 onchange()
- dc.js - 使用带有日期刻度的 dc.js 的“时间线”行图