我使用linux bonding驱动程序在客户端PC中以模式6绑定2个NIC。 ethtool ethX显示speed = 1000 ethtool bond0显示speed = 2000
但是当我使用eth0 = 934Mbps带宽的iperf带宽eth1 = 637Mbps带宽bond0 = 934Mbps
bond0的带宽应该在2000Mbps左右吗?
简而言之:不,绑定不以这种方式工作。
长话如下: linux绑定,以其各种绑定scheme,是非常可configuration的。 它有不less于7种不同的粘合types,每种粘合types都有其强弱点。 我强烈build议你阅读你可以在这里find的文档。 但是,除了round-robin模式(我将在下面详细说明)之外, 没有绑定scheme能够增加单个会话的吞吐量 ,而是加速了多个并发会话。 所以你的iperf输出是完全正常的,因为它打开了一个不能被bonding驱动程序加速的会话。
这个规则唯一的performance就是round-robin模式,它以很好round-robin方式传输数据包:第一个从第一个接口发出,第二个从第二个接口发出,依此类推。 这种绑定模式可以通过并发发送数据包来加速单个会话。 但是它有很多缺陷,从不兼容的交换机,无序的数据包传输(相对重传),超过2个接口的不好的扩展等等。
这只是一个非常简洁的总结。 如果你对粘合的工作很感兴趣,那么你应该认真看看我上面提供的文档。
我目前正在循环试验 – 我注意到,当绑定2个网卡时,它使用iperf时提供1.6-1.7 Gb / s(请记住,我用来testing速度的两台机器在模式0下各有2个网卡)。 我今天用3个网卡做了一个testing,速度达到了900 Mb / s–原因是循环法对于偶数个网卡来说效果最好。 我只会用它作为服务器备份的骨干(便宜)与NFS共享…