Как достичь гигабитных скоростей с Ubuntu с помощью склеивания?

Я работаю с драйвером связи в Linux (Ubuntu 12.04.2 LTS).

У меня есть 2 ПК с 2 сетевыми картами (гигабитный Ethernet - Intel 82574L) в каждом (всего 4 сетевых адаптера). Я хочу улучшить свою пропускную способность TCP через гигабитную сеть, используя связывание, но моя проблема в том, что я не могу достичь гигабитных скоростей, используя связывание.

Мой гигабитный интерфейс может достигать 370 - 375 Мбит / с при использовании одного гигабитного интерфейса (без использования связывания). Когда я включаю свое соединение, например, в режиме 0 (balance-rr), я могу достичь 760 - 772 Мбит / с (используя iperf).

Когда я хочу передать данные с одного компьютера на другой (используя режим связывания Balancer-rr), я просто могу достичь 472 Мбит / с (59 МБ / с). Для передачи данных я использую scp,

Мои вопросы:

  1. Каковы ограничения гигабитного Ethernet по Linux?
  2. Почему я не могу достичь гигабитных скоростей?
  3. Может кто-нибудь помочь мне изменить настройки по умолчанию в Ubuntu для достижения гигабитных скоростей?

Можете ли вы посоветовать, как настроить Ubuntu для достижения гигабитных скоростей?

Мой sysctl.conf:

# cat sysctl.conf | grep -v ^# | tr -s '\n' 
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

# ethtool -k eth1
Offload parameters for eth1:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off
receive-hashing: off

# ethtool -k eth2
Offload parameters for eth2:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off
receive-hashing: off

# ethtool -g eth1
Ring parameters for eth1:
Pre-set maximums:
RX:        4096
RX Mini:    0
RX Jumbo:    0
TX:        4096
Current hardware settings:
RX:        256
RX Mini:    0
RX Jumbo:    0
TX:        256

# ethtool -g eth2
Ring parameters for eth2:
Pre-set maximums:
RX:        4096
RX Mini:    0
RX Jumbo:    0
TX:        4096
Current hardware settings:
RX:        256
RX Mini:    0
RX Jumbo:    0
TX:        256

1 ответ

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

Другие вопросы по тегам