Вопрос: Почему iperf по-прежнему сообщает о производительности 1 Гбит / с при использовании соединения по двум адаптерам 1 Гбит / с?


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

Связывание [...] означает объединение нескольких сетевых интерфейсов (NIC) в одну ссылку, обеспечивая либо высокую доступность, балансировку нагрузки, максимальная пропускная способность, или их комбинацию.

Источник: Документация Ubuntu, акцент мой.

У меня есть связь на двух серверах; оба имеют два адаптера NIC 1 Гбит / с. При тестировании скорости между этими серверами с помощью iperf, в отчете указывается:

  • От 930 до 945 Мбит / с при использовании balance-rr режим склейки.
  • От 5 до 530 Мбит / с от машины А до Б при использовании 802.3ad,
  • От 930 до 945 Мбит / с от машины B до A при использовании 802.3ad,

Интересно, что при использовании 802.3ad, ifconfig указывает, что практически все RX включен eth0 (2,5 ГБ против нескольких КБ / МБ) и все TX на eth1 на машине A, а инверсия на машине B.

Когда вы спрашиваете iperf для использования нескольких соединений (iperf -c 192.168.1.2 -P 10), полученная сумма очень близка к результатам, отображаемым при использовании одного соединения.

Две машины подключены к Netgear GS728TS, который LACP настроен должным образом (надеюсь), с двумя LAG, охватывающими два порта каждый. Режим IEEE 802.3x включен.

Является iperf хорошо подходит для такого рода тестов? Если да, то что-то мне не хватает?


5
2017-08-29 22:07


Источник


iperf должно быть хорошо. Возможно ли, что оборудование посередине является узким местом?
В каком режиме у вас есть? Вы проверили, что обе ссылки используются (даже если не полностью)? - Patrick
@FrederikDeweerdt: оборудование в середине - это коммутатор, который должен иметь возможность правильно обрабатывать соединение 2 Гбит / с. Я отредактировал вопрос, чтобы предоставить более подробную информацию. - Arseni Mourzenko
@Patrick: Я использую 802.3ad, Я отредактировал вопрос, чтобы предоставить более подробную информацию. - Arseni Mourzenko
Я думаю, что 802.3ad использует хэш адресов конечных точек, чтобы выбрать, какой интерфейс использовать, поэтому между любыми двумя конечными точками ваша пропускная способность не будет выше, чем пропускная способность одного сетевого адаптера. Круглый робин может привести к увеличению пропускной способности, если вы хотите максимизировать скорость передачи между двумя конкретными конечными точками, но я считаю, что недостатком этого является то, что пакеты могут выходить из строя (не проблема для TCP). Проверьте, имеет ли ваш коммутатор общие пределы пропускной способности для физически соседних портов; иногда у них будет 2 или 4 порта, использующих одно и то же оборудование. - Mark Plotnick


Ответы:


Связные интерфейсы не предоставляют дополнительную пропускную способность для отдельных сетевых потоков. Поэтому, если вы используете только одну копию iperf, вы сможете использовать только один сетевой интерфейс за раз. Если у вас есть два сетевых адаптера в лагге, вам понадобятся, по крайней мере, две полностью независимые копии iperf, работающие на компьютере, для одновременного использования. Это применимо и к фактическим нагрузкам - например, клиент Samba будет по-прежнему видеть только пропускную способность 1 Гбит, но два клиента могут видеть 1Gb, если у вашего lagg есть два сетевых адаптера. Все это предполагает, что у вас есть lagg, сконфигурированный для использования обоих сетевых адаптеров (опция 802.3ad сделает это).


2
2017-09-30 20:34





После контакта с поддержкой Netgear появляется следующее:

Если вы используете 2 станции (1 клиент / 1 сервер), она будет использовать только одну ссылку (следовательно, 1 Гбит / с / 940 Мбит / с), используемая связь определяется алгоритмом хэширования LACP.

Чтобы преодолеть ограничение 1 Гбит / с, вам нужно будет протестировать более одного клиента.

Источник: ответ на запрос поддержки Netgear

Тот же ответ на билет ссылки на публичный форум Netgear, где мы можем прочитать:

Вы можете получить только агрегацию 2 Гбит / с, когда алгоритм хэширования LACP ставит несколько потоков трафика по различным путям, и это не всегда. С небольшим количеством клиентов (2 в вашем случае) шансы хорошие, что оба они могут получить хэширование по той же ссылке.

Для тех, кто не хочет читать всю дискуссию на форуме, вот ключевые моменты:

  • Для использования LACP должно быть как минимум два клиента, подключающихся к серверу. Один клиент будет использовать только одну ссылку, что ограничит ее скорость до 1 Гбит / с.

  • Два клиента должны использовать разные ссылки для получения LACP.

  • При наличии только двух сетевых адаптеров на сервере существует 50% -ный шанс получить одну и ту же ссылку от двух клиентов, что приведет к полной скорости, ограниченной 1 Гбит / с. Три сетевых адаптера уменьшают вероятность до 33%, от четырех до 25%.

В заключение, нет никакой возможности с Netgear GS728TS получить скорость от 1,4 до 1,8 Гбит / с между двумя машинами.


2
2018-04-21 21:49