第三部分 · 2 / 6

通用命令行参数

cmd/ 下 perftest 风格工具共享同一套参数(解析逻辑在 perftest/config.go)。 记住这张表,所有工具的用法就都通了。

参数速查

参数含义默认
-s消息大小(字节)
-n迭代次数
-dRDMA 设备名(如 mlx5_3第一块
-iHCA 端口号(1 起)1
-pTCP 握手端口
-c传输类型:RCUDRC
-R用 rdma_cm 建连(而非 TCP 握手)
-ttx-depth(在飞的发送 WR 数)128
-xGID 索引—(RoCE v2 常用 3)
--output=histogram时延工具:打印完整直方图

分组理解

这些参数大致分四组,对照第一、二部分的概念就好记:

分组参数对应概念
选硬件-d / -i / -x设备 / 端口 / GID 索引
选传输-c / -RRC/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 教程