У меня есть несколько машин с картами ConnectX-7 Infiniband, и они подключены к коммутатору Nvidia QM9700. Я подтвердил 400 Гбит NDR на обоих концах (ibstat на хосте и в консоли на коммутаторе). Машины работают под управлением Ubuntu 22.04 и драйверов Mellanox 5.8-3.0.7.0. Я провел много тестов, ib_write_bw
и максимум, который я смог получить, составляет ~251 Гбит/с. Фактические команды теста:
Серверная сторона (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
Я понимаю, что это, вероятно, маловероятно, но интересно, удалось ли кому-то реально достичь скорости в 400 Гбит/с по InfiniBand, ib_write_bw
возможно, мы что-то упустили.
решение1
Итак, ответ в конечном итоге был таким: нам нужно установить параметр PCI MAX_ACC_OUT_READ
на 128. После того, как это было установлено mlxconfig -y -d mlx5_4 s MAX_ACC_OUT_READ=128
для каждой карты, а затем мы выключили и включили машины, пропускная способность выросла с ~250 Гбит до ~375 Гбит. Не 400, но я возьму. Для каждой карты:
apt-get install mlnx-ofed-all
mst start
for i in `mst status -v | grep 'net-ibp' | awk '{print $3}'` ; do mlxconfig -y -d $i s MAX_ACC_OUT_READ=128 ; done