5 测试结果进行验证分析
测试软件环境:RedHat9.0(内核2.4.20)
测试硬件配置环境:一台服务器(CPU: P IV 2.8G;内存: 512M;两块支持MII状态字寄存器的百兆网卡,每个有一个接口;一台客户机(配置和服务器一样);两台(一台也可)24口千兆交换机。测试软件为netpipe,利用此软件可以测试TCP 协议性能,用它依次来对轮转算法、MAC地址异或算法以及基于传输协议的发送算法的网络延时和吞吐率。这里服务器用来发送数据,客户机用来接收数据。
服务器发送方执行:
NPtcp –t –s –h 172.19.11.130 –o test.ppt –p
客户机接受方执行:
NPtcp –r –s
测试结果(测试结果为平均值)如表一所示。
从测试结果可以得出结论:由于轮转算法简单,计算量小,网络延迟也相对小,而基于传输协议的发送算法计算量相对较多,网络延时也比较大。由于这里是双机对测,即只有一个客户端,一个服务器端,所有MAC地址异或算法每次计算的结果也就唯一,只有一个接口被使用,吞吐率最小。相对来说,基于传输协议的发送算法吞吐率要大一些。
表一测试结果
上面测试需要说明的是:测试中服务器仅配置了两块网卡,并且只有一台客户机访问服务器,当网卡接口和客户机增加时,此文介绍的基于传输协议的发送算法的优势将会很明显。在一个比较大的局域网中多个客户机和服务器建立连接对话时,采用轮转算法的同一个连接的数据包经过不同的链路传送,无序到达客户端的概率就会增加,重发的次数也增加,服务器吞吐率会降低。而基于传输协议的发送算法则不存在这样的问题,此种情况下,服务器的吞吐率相对增加。
6 结束语
Linux的bonding技术将多个网卡接口绑定在一起,使用多个接口发送数据,算法上实现了负载均衡和故障迁移与接管。它是一种不对称得负载均衡技术,目前只是研究了发送算法,接受算法还有待于进一步的研究,目前的链路技术都是将网卡接口绑定在一起来提高服务器的网络性能,但是各种实现算法包括基于传输协议的发送算法并没有考虑接口的速度,这一点有必要进一步改进。