第三部分 · 2 / 6
通用命令行参数
cmd/ 下 perftest 风格工具共享同一套参数(解析逻辑在 perftest/config.go)。
记住这张表,所有工具的用法就都通了。
参数速查
| 参数 | 含义 | 默认 |
|---|---|---|
-s | 消息大小(字节) | — |
-n | 迭代次数 | — |
-d | RDMA 设备名(如 mlx5_3) | 第一块 |
-i | HCA 端口号(1 起) | 1 |
-p | TCP 握手端口 | — |
-c | 传输类型:RC 或 UD | RC |
-R | 用 rdma_cm 建连(而非 TCP 握手) | 关 |
-t | tx-depth(在飞的发送 WR 数) | 128 |
-x | GID 索引 | —(RoCE v2 常用 3) |
--output=histogram | 时延工具:打印完整直方图 | — |
分组理解
这些参数大致分四组,对照第一、二部分的概念就好记:
| 分组 | 参数 | 对应概念 |
|---|---|---|
| 选硬件 | -d / -i / -x | 设备 / 端口 / GID 索引 |
| 选传输 | -c / -R | RC/UD / 连接方式 |
| 定负载 | -s / -n / -t | 消息大小 / 次数 / 队列深度 |
| 看输出 | --output | 结果呈现 |
最易踩坑:-d / -x
-d 选的设备和 -x 选的 GID 索引两端必须对应同一张物理网络、且支持 RoCE v2,
否则握手不上。用 show_gids 确认索引,ip addr 确认设备↔IP 的对应关系。
几个常见组合
# 64KB 大包带宽,跑 5000 次,指定设备和 GID
-s 65536 -n 5000 -d mlx5_3 -x 3
# UD 传输的 Send 测试(仅 go_send_* 支持 -c UD)
-c UD -d mlx5_1 -x 3
# 改用 rdma_cm 而非 TCP 握手
-R -d mlx5_3 -x 3
# 时延 + 完整直方图
-d mlx5_3 -x 3 --output=histogram
查看帮助
任何工具加 -h 都会打印它支持的参数(解析失败或 -h 时返回相应错误并退出):
./bin/go_send_bw -h
下一步
参数清楚了,下一节实际跑一遍性能测试,并说清命令里的 IP 到底是谁。
gordma 教程