论文部分内容阅读
Linux虚拟服务器(Linux Virtual Server,简称LVS)使用负载均衡技术将多台服务器组成一个虚拟服务器集群。它为满足快速增长的网络访问需求提供了一个易于扩展、可用性高而价格低廉的解决方案。这种集群系统的核心技术之一是负载均衡。负载均衡的主要功能就是根据某种调度算法将服务请求转发到某台真实服务器上。其目标是尽可能地充分利用集群中的每台服务器,从而缩短整个系统服务响应时间。LVS虽然提供了集群系统负载调度机制,但其负载调度的权值是静态的,调度器不能根据服务器的真实负载情况来实时地动态调整权值,这样容易给服务器造成负载倾斜。基于此,本文设计了一种利用服务器实时反馈过来的负载信息,调度器计算真实服务器的综合负载并动态调整权值的方案。并对负载调度算法进行了改进,提出一种新的负载调度算法:加权最小利用率调度算法。本文首先概述了LVS的整体架构,并对其技术特点进行分析。再对目前LVS的负载调度算法进行了深入的分析与研究。针对现有调度算法不能实时地动态调整权值的缺点,设计并开发了Agent和LoadManager两个程序。Agent程序运行在每个服务器里用于收集本机负载信息;LoadManager程序运行在调度器,用于收集和计算Agent传来的各个服务器的负载信息。调度器根据收集的负载信息及时调整服务器的权值,并采用加权最小利用率调度算法来转发服务请求,从而提高整个系统的快速响应能力和吞吐量。最后,利用Web负载压力测试工具Load Runner对该集群系统进行加压测试并对各个服务器的负载情况进行记录。测试结果表明,这种架构和算法当请求数较大时确实能够有效地避免负载倾斜和增加系统的吞吐量。当请求数较小时,性能的改善不太明显;当请求数较大时,动态反馈算法的优势才逐渐显现出来。之所以当请求数较小时效果不明显,是因为用于收集负载信息的进程占用了一定内存空间和CPU时间,同时由于调度器需要定时接收各个真实服务器的负载信息,这也给网络带宽带来了额外的开销。只是当连接数较大时,这些开销就被算法带来的效率所抵消了。这样就实现了动态地均衡LVS集群各个节点的负载,能较大幅度地提高系统的综合性能。