如何使用绑定在 Ubuntu 上实现千兆速度?

如何使用绑定在 Ubuntu 上实现千兆速度?

我正在使用 Linux(Ubuntu 12.04.2 LTS)上的绑定驱动程序。

我有 2 台 PC,每台都有 2 个 NIC(千兆以太网 - Intel 82574L)(总共 4 个 NIC)。我想使用绑定来提高千兆网络上的 TCP 吞吐量,但我的问题是我无法使用绑定来实现千兆速度。

我的千兆接口使用单个千兆接口(不使用绑定)可以达到 370 - 375 Mbps。当我打开绑定时,例如使用模式 0(balance-rr),我可以达到 760 - 772 Mbps(使用 iperf)。

当我想将数据从一台 PC 传输到另一台 PC 时(使用绑定模式 balance-rr),我只能达到 472 Mbps(59 MB/s)。为了传输数据,我使用scp

我的问题是:

  1. 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

单个流只能在单个链接上接收。因此,尽管您的链接可能已绑定,并且数据包在发出时以循环方式拆分,但它们仍然只能由另一端的单个链接接收。

相关内容