Плохая пропускная способность сети на точке-точке между 2 машинами с Linux с картами Mellanox ConnectX-6.

Вопрос или проблема

Для обеих машин:

  • Ubuntu 20.04
  • Карты Mellanox MT28908 ConnectX-6 в режиме ethernet
  • Ядро модуля: mlx5_core (из MLNX_OFED_LINUX-24.04-0.6.6.0-ubuntu20.04-x86_64)

Карты ConnectX-6 напрямую соединены друг с другом с помощью Nvidia DAC, используя адреса RFC1918; т.е. небольшая 2-узловая сеть. Машины представляют собой серверные системы в стойках, одна из которых оборудована процессором Intel Xeon Gold 5318Y, а другая – 2 x Intel Xeon Platinum 8358. Ожидается, что эти карты обеспечивают соединение на скорости 100 Гбит/с. Тем не менее

root@zakynthos:~# iperf3 -c 192.168.101.1
Подключение к хосту 192.168.101.1, порт 5201
[  5] локальный 192.168.101.2 порт 45974 подключен к 192.168.101.1 порт 5201
[ ID] Интервал           Передача     Скорость         Повторений  Cwnd
[  5]   0.00-1.00   сек  3.17 GBytes  27.2 Gbits/sec  227    912 KBytes       
[  5]   1.00-2.00   сек  2.58 GBytes  22.1 Gbits/sec  1382    755 KBytes       
[  5]   2.00-3.00   сек  2.36 GBytes  20.3 Gbits/sec  2459   1.08 MBytes       
[  5]   3.00-4.00   сек  3.07 GBytes  26.4 Gbits/sec  3433    723 KBytes       
[  5]   4.00-5.00   сек  3.36 GBytes  28.9 Gbits/sec  3004   1.05 MBytes       
[  5]   5.00-6.00   сек  2.83 GBytes  24.3 Gbits/sec  1692    942 KBytes       
[  5]   6.00-7.00   сек  2.47 GBytes  21.2 Gbits/sec  1819   1022 KBytes       
[  5]   7.00-8.00   сек  3.03 GBytes  26.0 Gbits/sec  1578    841 KBytes       
[  5]   8.00-9.00   сек  3.37 GBytes  28.9 Gbits/sec  1920   1024 KBytes       
[  5]   9.00-10.00  сек  2.91 GBytes  25.0 Gbits/sec  1239   1.06 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Интервал           Передача     Скорость         Повторений
[  5]   0.00-10.00  сек  29.1 GBytes  25.0 Gbits/sec  18753             отправитель
[  5]   0.00-10.04  сек  29.1 GBytes  24.9 Gbits/sec                  приемник

Я привык видеть, что iperf3 обеспечивает около 90% от номинальной пропускной способности карты, поэтому для меня это выглядит ужасно и неприемлемо. Есть ли у кого-то мысли о том, почему я не вижу производительности хотя бы 80-90 Гбит/с здесь?

серверные системы в стойках – что это за системы и в какой слот вы подключили NIC?

MT28908 ConnectX-6 поддерживает PCIe 4.0 x16 с теоретической пропускной способностью до 252 Гбит/с – достаточно для 2x 100 GbE. Однако, если этот слот поддерживает, например, PCIe 3.0 x4 электрически (“x16 @ x4”), тогда пропускная способность падает до 31 Гбит/с, что приводит к примерно такому результату, который вы видите.

Другой возможностью является плохая настройка памяти с одним каналом (хотя это маловероятно).

Проверьте характеристики вашего сервера.

Проблемой был тот факт, что версия iperf3, поставляемая с Ubuntu 20.04, не может обрабатывать пропускные способности выше 25 Гбит/с. Я скачал и скомпилировал последнюю версию iperf3 (которая поддерживает выполнение параллельных потоков), и запустил 16 параллельных клиентских потоков:

/opt/iperf-3.17.1/bin/iperf3 -c 10.119.8.9 -P 16

Я смог получить около 98-99 Гбит/с, что достаточно близко к теоретическому максимуму для карты.

Ответ или решение

Давайте подробно рассмотрим проблему, связанную с низкой пропускной способностью сети на прямом соединении между двумя Linux-машинами, оснащенными картами Mellanox ConnectX-6.

Фоновая информация

Для обеих машин используются:

  • Операционная система: Ubuntu 20.04
  • Сетевые карты: Mellanox MT28908 ConnectX-6 в режиме Ethernet
  • Ядро: Модуль mlx5_core (из MLNX_OFED_LINUX-24.04-0.6.6.0-ubuntu20.04-x86_64)

К ардам подключены напрямую через Nvidia DAC, используя адреса RFC1918, что формирует небольшую двухузловую сеть. Серверы являются оборудованием серверного класса: один с процессором Intel Xeon Gold 5318Y, и другой — с двумя процессорами Intel Xeon Platinum 8358. Ожидаемая пропускная способность составит 100 Гбит/с.

Описание проблемы

Используя утилиту iperf3, было установлено, что фактическая пропускная способность составляет около 25 Гбит/с. Это значение значительно ниже ожидаемого и может вызывать серьезные сомнения относительно производительности сетевого подключения:

[ ID]   0.00-10.00  sec  29.1 GBytes  25.0 Gbits/sec

Причины низкой пропускной способности

  1. Версия iperf3: Важной причиной может быть версия iperf3, поставляемая с Ubuntu 20.04. Более ранние версии имеют ограничения по пропускной способности и могут не справляться с нагрузками, превышающими 25 Гбит/с. В таком случае рекомендуем обновить iperf3 до последней версии и обеспечить использование параллельных потоков.

  2. PCIe-соединение: Нужно проверить, в какой слот PCIe установлены сетевые карты. Если слот поддерживает только PCIe 3.0 x4 (что может выглядеть как x16 на плате), тогда общее доступное полное пропускная способность будет ограничена до 31 Гбит/с, что подтверждает ваши результаты.

  3. Настройки памяти: Проверьте настройки памяти на серверах. В редких случаях, если используется только одна канал памяти, это может также привести к снижению производительности.

  4. Настройки сети: Убедитесь, что все необходимые настройки сети, связанные с MTU, Jumbo Frames и другими параметрами, должным образом настроены. Неправильно заданные настройки могут привести к дополнительным накладным расходам и потере пакетной информации.

Решения

  • Обновление iperf3: Скомпилируйте и установите самую свежую версию iperf3, которая поддерживает многопоточность. Например, запустив команду:

    /opt/iperf-3.17.1/bin/iperf3 -c 192.168.101.1 -P 16

    вы сможете протестировать производительность с параллельными потоками.

  • Проверка аппаратного обеспечения: Убедитесь, что карты установлены в слоты, поддерживающие максимальную пропускную способность, и что материнская плата совместима с PCIe 4.0.

  • Оптимизация сетевых настроек: Проверьте, что MTU настроен на более высокие значения (например, 9000 для Jumbo Frames) и что нет ограничений на сторонних устройствах, таких как маршрутизаторы или коммутаторы.

Заключение

Важно учитывать, что для достижения ожидаемой пропускной способности 100 Гбит/с нужно не только иметь оборудование с соответствующей поддержкой, но и оптимизировать программное обеспечение и сетевые настройки. После выполнения вышеуказанных рекомендаций вы должны получить значительно увеличенную пропускную способность в тестах iperf3.

Оцените материал
Добавить комментарий

Капча загружается...