我有几台带有 ConnectX-7 Infiniband 卡的机器,它们已插入 Nvidia QM9700 交换机。我已确认两端均为 400 Gbit NDR(主机上的 ibstat 和交换机控制台中)。这些机器运行 Ubuntu 22.04 和 Mellanox 5.8-3.0.7.0 驱动程序。我已经做了很多测试ib_write_bw
,我能得到的最大速度是 ~251 Gbit/s。实际测试命令为:
服务器端(host_a):
numactl -N 0 -m 0 ib_write_bw -d mlx5_4 -F --report_gbits
客户端(host_b):
numactl -N 0 -m 0 ib_write_bw -d mlx5_4 -F --report_gbits --run_infinitely host_b
这些卡位于正确的 numa 域中以匹配 numactl,但我尝试过其他组合,但没有成功。输出最终看起来像这样:
---------------------------------------------------------------------------------------
RDMA_Write BW Test
Dual-port : OFF Device : mlx5_4
Number of qps : 1 Transport type : IB
Connection type : RC Using SRQ : OFF
PCIe relax order: ON
ibv_wr* API : ON
TX depth : 128
CQ Moderation : 1
Mtu : 4096[B]
Link type : IB
Max inline data : 0[B]
rdma_cm QPs : OFF
Data ex. method : Ethernet
---------------------------------------------------------------------------------------
local address: LID 0x54 QPN 0x0058 PSN xxx RKey 0x1820e0 VAddr xxx
remote address: LID 0x53 QPN 0x0058 PSN xxx RKey 0x1820e0 VAddr xxx
---------------------------------------------------------------------------------------
#bytes #iterations BW peak[Gb/sec] BW average[Gb/sec] MsgRate[Mpps]
65536 2353827 0.00 246.81 0.470754
65536 2339084 0.00 245.27 0.467815
65536 2338736 0.00 245.23 0.467746
65536 2338574 0.00 245.22 0.467713
65536 2338610 0.00 245.22 0.467720
我知道这可能不太可能,但想知道是否有人实际上已经在 infiniband 上实现了 400 GB,ib_write_bw
这可能知道我们错过了什么。
因此,最终的答案是我们需要将 PCI 参数设置
MAX_ACC_OUT_READ
为 128。一旦mlxconfig -y -d mlx5_4 s MAX_ACC_OUT_READ=128
为每张卡设置了该参数,然后重新启动机器,吞吐量就会从约 250 Gbit 跃升至约 375 Gbit。不是400,但我会接受。做每张卡: