Как достичь гигабитных скоростей с 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
,
Мои вопросы:
- Каковы ограничения гигабитного Ethernet по Linux?
- Почему я не могу достичь гигабитных скоростей?
- Может кто-нибудь помочь мне изменить настройки по умолчанию в 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 ответ
Один поток может быть получен только по одной ссылке. Таким образом, в то время как ваши ссылки могут быть связаны и пакеты разбиваются по кругу на выходе, они все равно принимаются только одной ссылкой на другой стороне.