LVS集群改进算法研究与分析
2014-11-15王春娟
王春娟
(陕西学前师范学院计算机科学与技术系,陕西西安,710100)
1 IPVS软件中带权重算法分析
IPVS软件和集群管理软件ipvsadm是LVS集群进行负载均衡的核心部分,该软件运行在安装Linux操作系统的调度器上,负责将用户请求合理、科学地转发到集群中负载最轻的服务器上。IPVS软件中包含十种可用的调度算法,但只有带权重循环算法和带权重最小链接算法事先会给每台服务器配置一个符合其处理能力的权重,下面来分析这两种算法的核心思想。
1.1 带权重循环算法
该算法简称WRR,存放在IPVS软件的ip_vs_wrr.c文件中,该算法根据集群服务器处理负载的能力为每个服务器配置一个合适的权重Wi,然后将权重与循环技术一起使用来选择下一个合适的服务器响应用户请求,该算法不考虑每个服务器当前连接数。权重为2的服务器将收到权重为1的服务器的2倍的新连接数,如果将服务器的权重Wi设置为0,就不再接收任何用户请求。
1.2 带权重最小连接算法
该算法简称WLC,存放在IPVS软件的ip_vs_wlc.c文件中,带权重最小连接算法将最小链接算法和每个服务器的指定权重Wi结合起来进行服务器的选择,调度器首先计算每个集群服务器的当前连接数Ci,然后除以该服务器配置的权重Wi,以取得每个服务器的Ci/Wi值,取出该值最小的服务器来处理用户的请求,当服务器的权重Wi为0时,不再给该服务器分配新的用户请求。
1.3 WRR和WLC算法存在的不足
(1)集群中配置的权重是根据每个服务器的硬件配置和最大处理能力事先通过管理软件ipvsadm进行配置的,不能根据服务器的实时处理能力进行调节;
(2)没有综合考虑影响服务器实时负载的因素。
2 改进算法分析与设计
2.1 算法的主要思想
为避免原有算法的不足,本文上述两种算法的基础上,提出一种改进的算法,综合考虑服务器的实时处理能力,用当前连接数、CPU利用率、内存占用率等值来衡量服务器的实时负载值,进而动态的调整服务器当前的权重Wi,再结合WRR或者WLC算法来合理分配用户请求,使得服务器间处理任务达到均衡,进而提高集群的整体性能。
2.2 算法中关键参数的计算
假设集群中的服务器表示为Si(i=1,2,……,n),Wi表示服务器原先的权重,Wi’表示更新的权重。
2.2.1 服务器Si的负载L(Si)
计算服务器Si的负载时,本文考虑用CPU使用率(P(Ci))和内存使用率(P(Mi))来衡量服务器的实时负载,L(Si)=r1*P(Ci)+r2* P(Mi),r1表示服务器CPU使用率对实时负载影响的重要程度,r2表示服务器内存使用率对实时负载影响的重要程度,r1 和r2之和为1、可以针对集群提供的服务类型灵活地调整这两个值。
同时,为L(Si)、P(Ci))和P(Mi)设置一个最大值分别为 L(Si)max、P(Ci)max和 P(Mi)max,当服务器 Si的 L(Si)、P(Ci))和P(Mi)值超过其最大值时,将该服务器新的权重Wi’设置为0。
2.2.2 服务器Si新权重Wi’
服务器Si新权重Wi’= (Wi/L(Si)max)*( L(Si)max-L(Si)),并将新的权重更新到Linux内核中。
2.3 改进算法的具体设计过程
在搭建的LVS集群中,调度器每隔固定的周期,向真实服务器统一发送一个请求,请求每个服务器上报其CPU使用率(P(Ci))和内存使用率(P(Mi)),调度器根据每个服务器上报的数值计算服务器的负载L(Si)并修改原先的权重。因而改进算法分为调度器和真实服务器两个部分,具体如下:
(1)真实服务器部分
接受LVS集群调度器的请求后,将其CPU使用率(P(Ci))和内存使用率(P(Mi))的数值传送给调度器。
(2)调度器部分
根据上报的数值计算服务器Si的负载L(Si)、同时从IPVS中得到服务器原先的权重Wi,计算每个服务器的新权重并将新的权重Wi’写入IPVS内核中。
3 改进算法的性能测试与分析
3.1 LVS集群搭建及算法配置
本文搭建了LVS-NAT Web集群来验证改进算法的性能,其结构如图1所示,
选择2台真实服务器来提供Web服务,这两台服务器的硬件配置相同,在客户端采用WAS软件来模拟大量并发用户对集群的访问。
Linux内核中包含LVS,需要在启用LVS选项下编译和安装此内核,通过ipvsadm来配置IP地址和调度算法,分别配置WRR和WLC算法,分别与实时更新的权重Wi’结合起来。
3.2 设置改进算法参数
改进算法中各参数r1、r2、L(Si)max、P(Ci)max和P(Mi)max的取值如表1所示。
表1 算法参数值
3.3 测试结果与分析
3.3.1 测试结果
在LVS-NAT集群中分别配置WRR和WLC算法,测试访问链接数不断增大时,集群的平均响应时间,将这两种算法分别与实时更新的权重Wi’结合起来,测试集群的平均相应时间。测试的结果如图2和图3所示。
3.3.2 测试分析
图2 改进算法与WRR算法平均响应时间对比
将WRR和WLC算法和实时更新的权重Wi’结合起来,集群的平均响应时间降低,因此集群整体处理性能进一步提高,改进的算法在LVS集群中有一定的应用价值。
图3 改进算法与WCL算法平均响应时间对比
[1]Karl Kopper著 沈金河,李秋霞等译.Linux企业集群[M].北京.中国水利水电出版社,2007.3
[2]倪继利.Linux内核分析及编程[M].北京.电子工业出版社,2007.09.
[3]Alex Vrenios著.马朝晖等译.Linux集群体系结构[M].北京.机械工业出版社,2003.1.
[4]买京京.Web服务器集群负载均衡技术研究[D].中北大学,2008.
[5]古俐明.集群服务器负载均衡技术研究[J].微计算机信息,2007(12).