是否可以使用多个 NIC 并增加吞吐量和/或减少网络延迟?如果是这样,缩放限制是多少?
谢谢,
是否可以使用多个 NIC 并增加吞吐量和/或减少网络延迟?如果是这样,缩放限制是多少?
谢谢,
这是一个有趣但复杂的话题,就像大多数工程一样,答案是:这取决于!在这种情况下,缺乏细节会增加歧义(我还不允许评论要求澄清)。
场景一:
让我们从适用于您的问题的常见场景开始。您在办公室有一个文件服务器和 4 个用户,所有用户都通过千兆以太网连接到同一台交换机。
服务器只有 1Gbit 的总带宽可以在所有用户之间共享,因此如果 2 个用户同时下载文件,每个用户将获得约 500Mbit。这种情况证明添加另一个 NIC 以增加服务器总带宽是合理的。
假设用户没有使新的 2Gbit 链路饱和,服务器的延迟也会得到改善。这是因为数据包不必在连接交换机和服务器的链路的任一侧排队等待轮到他们。
您可以扩展此解决方案,直到客户端与服务器的带宽比为 1:1。
场景2:
适用于您的问题的另一种常见情况。你有一个位于纽约的文件服务器和一群在洛杉矶的用户。每个人仍然通过 1Gbit 链路连接。
在这种情况下,距离开始影响整体吞吐量。在办公场景中,当链路未饱和时,从服务器到客户端的延迟小于 1 毫秒。然而,从纽约到洛杉矶需要更长的时间,假设往返时间为 100 毫秒。
在这种情况下,2 个用户将无法在标准文件传输中最大化 1Gbit 链接。这是因为链路容量不再是限制因素,而是TCP 窗口缩放开始发挥重要作用。有多重要?粗略估计(吞吐量 = 窗口大小/往返时间)显示,每个用户下载的最大值约为 5-6Mbit/s。
通常,添加 NIC 可以显着提高吞吐量并延长延迟,但 100% 取决于您正在处理的潜在问题。
是的,您问题的第一部分是可能的。您可以很好地对连接到一台机器的两个 NIC 进行 NIC 绑定并增加吞吐量。
然而,网络延迟并不能简单地通过网卡绑定来改善。延迟将由于物理限制而成为瓶颈。
另请注意,您可能还必须在路由器/交换机端配置链路聚合。
参考:https : //www.cyberciti.biz/tips/linux-bond-or-team-multiple-network-interfaces-nic-into-single-interface.html