为什么 iperf 在两个 1Gbps 适配器上使用绑定时仍然报告 1Gbps 性能?

Ars*_*nko 8 networking ubuntu performance bonding

据我了解,绑定带来的好处之一是能够提高 LAN 中两台机器之间的网络速度。

绑定 [...] 意味着将多个网络接口 (NIC) 组合到单个链接,提供高可用性、负载平衡、最大吞吐量或这些的组合。

来源:Ubuntu 文档,重点是我的。

我在两台服务器上配置了绑定;两者都有两个 1Gbps NIC 适配器。当测试这些服务器之间的高速使用iperf,该报告指出:

  • 使用balance-rr绑定模式时为 930 至 945 Mbits/sec 。
  • 520 到 530 Mbits/sec 从机器 A 到 B 使用时802.3ad
  • 使用802.3ad.

一个有趣的事情是,使用时802.3adifconfig表明几乎所有的RXeth0(2.5 GB与几KB / MB)和所有TXeth1机器A,并在计算机B的倒数

当要求iperf使用多个连接 ( iperf -c 192.168.1.2 -P 10) 时,获得的总和非常接近使用单个连接时显示的结果。

两台机器连接到 LACP 配置正确的 Netgear GS728TS(我希望),两个 LAG 分别覆盖两个端口。IEEE 802.3x 模式已启用。

是否iperf适合此类测试?如果是的话,有什么我想念的吗?

Chr*_*s S 5

绑定接口不会为单个网络流授予额外的带宽。因此,如果您只运行一份 iperf,那么您一次只能使用一个网络接口。如果滞后中有两个 NIC,则至少需要两个完全独立的 iperf 副本在计算机上运行才能查看任何同时使用情况。这也适用于实际负载——例如,Samba 客户端仍然只能看到 1Gb 的吞吐量,但是如果您的滞后有两个 NIC,则两个客户端可以分别看到 1Gb。这一切都假设您已将延迟配置为使用两个 NIC(802.3ad 选项将执行此操作)。


Ars*_*nko 4

联系 Netgear 支持后发现:

\n
\n

如果您使用 2 个站点(1 个客户端/1 个服务器),它实际上只会使用一条链路(因此为 1Gbps/940mbps),所使用的链路由 LACP 哈希算法决定。

\n

要超过 1Gbps 限制,您需要使用 1 个以上的客户端进行测试。

\n
\n

来源:Netgear 支持请求响应

\n

同一张票证回复链接到 Netgear 的公共论坛帖子,我们可以在其中读到:

\n
\n

当 LACP 哈希算法将多个流量流放入不同的路径时,您只能获得 2Gbps 聚合,但情况并非总是如此。对于少量客户端(在您的情况下为 2 个),它们很可能都被散列到同一链接。

\n
\n

对于那些不想阅读整个论坛讨论的人,以下是要点:

\n
    \n
  • 应该至少有两个客户端连接到服务器才能从 LACP 中受益。单个客户端将仅使用一条链路,这会将其速度限制为 1 Gbps。

    \n
  • \n
  • 两个客户端应使用不同的链接才能从 LACP 中受益。

    \n
  • \n
  • 如果服务器上只有两个网络适配器,则有 50% 的机会从两个客户端获得相同的链接,这将导致总速度上限为 1 Gbps。三个网络适配器将几率降低到 33%,四个\xe2\x80\x94 则降低到 25%。

    \n
  • \n
\n

总而言之,Netgear GS728TS 无法在两台机器之间获得 1.4 至 1.8 Gbps 的速度。

\n