1N4*_*001 4 networking linux gigabit-ethernet bonding
Linux 能够将 NIC 绑定在一起。有趣的策略是循环,它在每个 NIC 之间交替传出数据包。
然而,性能优势通常仅限于多个客户端。单个 1000BASE-T 客户端尽管由双 1000BASE-T 供电,但当然仍限制为 1 Gbit/s。
2.5GBASE-T 客户端怎么样?假设如下:
[服务器|2x1G] <===> [交换机|2.5G] <---> [客户端|1x2.5G]
服务器上的双网卡“条带化”以使带宽加倍,交换机使用两个端口接收全部带宽并切换到单个 2.5G 端口。
客户端能够以约 2 Gbit/s 的速度从服务器下载吗?如果是这样,这种情况是否需要比非托管交换机“更智能”的东西?
谢谢!
对于单个流,从交换机到客户端的方向上的任何带宽增益都是极不可能的。
托管交换机通常支持根据 802.3ad 协议的端口绑定或静态绑定,哑(非托管)交换机根本不支持。该通道支持冗余和更高的带宽,但有一个不同之处。通常使用所谓的哈希策略来选择特定端口,并且该策略使用各种 L2 和 L3(有时也包括 L4)字段来计算哈希。在大多数情况下,特定流的哈希值将保持不变 - 这意味着其带宽仅限于所选端口的带宽(顺便说一句,对于 802.3ad,所有端口都应具有相同的速度)。对于更便宜的交换机(TP-link),我见过基于 L2 或 L3 数据的散列,更昂贵的交换机(如 Dell PowerConnect)也支持对 L4 数据进行散列。
此外,此类通道是通过对等点之间的某些数据交换动态形成的,这意味着此类通道与您提到的balance-rr 模式不兼容。
因此,单流获得任何带宽增益的可能性极小。您可能会看到使用多个流获得一些收益,具体取决于交换机使用的哈希策略和配置的服务器(请参阅 xmit_hash_policy 了解可用的内容,您将需要包含 L4 信息的策略策略来获取两个特定主机之间的任何内容)。