Назад | Перейти на главную страницу

Проблема с двухпортовой пропускной способностью RDMA

У меня есть два узла, подключенных к двухпортовому Mellanox Connext-X3 VPI HCA через коммутатор IB. Узлы представляют собой машины с двумя сокетами с процессорами Hasswell и двумя модулями DIMM по 16 ГБ на каждый разъем (всего 64 ГБ). Кажется, все работает отлично, за исключением показателей производительности, которые кажутся неправильными.

Когда я бегу ib_read_bw ориентир:

server# ib_read_bw --report_gbits
client# ib_read_bw server --report_gbits

---------------------------------------------------------------------------------------
 #bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
 65536      1000             37.76              37.76          0.072016
---------------------------------------------------------------------------------------

Но когда я запускаю двухпортовый:

server# ib_read_bw --report_gbits -O
client# ib_read_bw server --report_gbits -O
---------------------------------------------------------------------------------------
 #bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
 65536      2000             52.47              52.47          0.100073
---------------------------------------------------------------------------------------

Я получаю улучшение менее чем на 40% (неужели я ошибаюсь, ожидая увеличения пропускной способности одного порта примерно в 2 раза)?

Я не знаю, что может быть здесь узким местом и как его найти.

Другие конфигурации, которые могут быть полезны:

Я думаю, что узким местом здесь является соединение PCIe между ConnectX и хостом. ConnectX-3 имеет Подключение PCIe поколения 3 x8, который привязан к теоретическому максимуму 63,04 Гбит / с (согласно этот ответ), и это не включает накладные расходы (см. Вот).

У меня есть (2) системы, каждая с Mellanox FDR MCX354A-FCBT CX354A (ConnectX-3 VPI). Имея только (2) с использованием InfiniBand, у меня нет коммутатора, и я просто подключил их напрямую. Я использую двойные Xeon (Sandy Bridge).

У меня был кабель 40 Гбит / с, который мешал подключению FDR, и я получал:

#bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
65536      1000             31.11              31.11              0.059329

Я получил кабель FDR (56 Гб / сек) и начал получать:

#bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
65536      1000             49.58              49.58              0.094569

Мне всегда было интересно, как было бы, если бы я использовал оба порта, поэтому попробовал и получил:

#bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
65536      2000             52.28              52.28              0.099717

Ну что ж. Я, наверное, не стану беспокоиться об этой выгоде.

Я определенно считаю, что haggai_e прав, потому что мои карты тоже PCI Express 3.0 x8. Думаю, чтобы быстрее видеть, нужны карты 3,0х16 или 4,0.

Еще одно преимущество двойных портов заключается в том, что они могут напрямую подключаться к разным сетям или машинам, и каждый из них получает полную скорость, если не передает данные постоянно.