论文部分内容阅读
随着互联网技术的发展,越来越多的分布式集群技术代替了传统的单节点服务器,在这样的背景下,负载均衡算法成为了热门话题。如何充分利用服务器中的各个节点,保证服务质量成为了负载均衡算法的优化目标。本文的第一部分介绍了RPC技术的应用背景以及用这种方式来替代传统的过程调用的原因。在Web2.0的环境下,分布式技术已经成为大势所趋,对于模块化开发,保证服务质量能够起到很好的效果,然后简要介绍了集群技术的发展历史以及现有的一些负载均衡算法。随后介绍了Linux虚拟服器的应用背景,意义以及内置的八种静态调度算法。重点分析了其中的默认调度算法,加权最小连接(WLC)算法。针对该算法灵活性较差,无法应对流量突变的缺点,提出了一种基于动态反馈的负载均衡算法,新的算法通过定期收集服务器的CPU,内存,网卡使用率等信息,计算节点的当前负载,并且根据负载情况动态调节节点权值,动态反馈算法具有较高的复杂性,但是能够弥补之前默认算法的不足之处。随后,介绍了这种算法的具体实现和相应的模块设计,其中包括了负载均衡器的权值计算模块和服务节点的负载信息收集模块。最后,我们搭建了一个小型的集群,使用LVS作为负载均衡器,采用微软的免费压力测试工具Web application stress Tool(WAST)模拟多用户并发访问进行压力测试实验,比较在相同并发连接数的情况下,原有的WLC算法和改进以后的动态反馈算法在平均响应时间和吞吐量上的优劣。接下来,我们分析了系统的内部性能,通过给两台硬件性能大致相同的节点设置比较悬殊的初始权值来模拟负载倾斜的情况。实验结果表明,改进后的动态反馈算法在响应时间和吞吐量这两个指标上均优于的WLC算法。在第二组实验中,经过一段时间的调节,两台节点的权值趋于平衡,表明了新的算法可以有效避免负载倾斜现象。