论文部分内容阅读
摘要:针对嵌入式Web服务器随着访问量的增加所面临的瓶颈问题,提出了一种利用随机概率动态请求负载分配的算法。该算法通过监视服务器集群当前工作负荷状态得出相关数据,再结合随机概率分配使后续的负载分布更均匀。实验结果表明,该算法有效提高嵌入式Web服务器的多发处理能力。
关键词:嵌入式Web服务器;负载均衡;权值;随机概率分布;S3C2440A
中图分类号:TP301.6文献标识码:A文章编号:1009-3044(2012)10-2217-03
Research and Realization of Load Balancing Algorithm Based on the Embedded Web Server
YANG Zhen-quan, ZOU Chuan-yun, LI Zhen-yu
(School of Information Engineering, Southwest University of Science and Technology, Mianyang 621010, China)
Abstract: An algorithm requesting distribution dynamically based on stochastic probability is proposed to solve the bottleneck problem cased by increasing visits to embedded Web server. Related data is collected by monitoring current working load condition of the servers. Subsequent load distribution could be made more even through combining related data and stochastic probability distribution. Experiment results show that the algorithm can improve the multiple processing power of the embedded Web server effectively.
Key words: Embedded Web Server; load balancing; Weights; stochastic probability distribution; S3C2440A
隨着现代计算机网络技术的不断发展,传统的大型Web服务器已逐渐不能适应复杂环境和低成本的社会需要,嵌入式Web服务器此时应允而生,以它的低功耗和灵活性深受用户的喜爱,随着应用的范围越来越广,要求的处理能力和计算强度也相应增大[1],此时嵌入式Web服务其有限的硬件条件随着访问量和数据流量的增加不能提供相应资源的矛盾越发突出,特别是面对大量突发性或者紧急性的访问时,极易导致服务阻塞,系统崩溃,使相应的设备无法正常运行,轻则造成短期停止服务重则造成无法挽回的损失[2]。依靠单个的嵌入式Web服务器不能同时满足大量的请求服务,但若能将多个嵌入式Web服务器通过有效的组织使其成为一个完整的系统,并将客户端发送的大量请求合理的分发给该系统的各服务器,那么不但提高了单个服务器的处理能力,同时也有效避免网络瓶颈的发生,以上便是利用服务器集群实现负载均衡的基本思想。
1负载均衡算法的设计
图1多服务器负载模型图
图1给出了多服务器模型框架,即由:服务器,运行服务软件提供相应服务的机器;客户,也就是向嵌入式Web服务器发起请求响应的应用;负载处理算法,也就是给嵌入式Web服务器分配HTTP请求的算法[3]。
1.1算法设计思想
通过实时监测各个服务器现有的访问对其工作负荷状态产生的影响即服务器实际承受的访问量,再结合服务器其自身软硬件条件所能提供的服务能力计算出每台服务器当前的负载权值以及平均负载权值。根据服务器应该分配不大于其自身固有承载力的服务原则基础上在随后时间段内对于那些超负荷工作的服务器应减少其请求服务对于那些仍处于“饥饿”状态也就是低于平均负载权值的服务器应对其增加请求访问服务,通过此分配使整个服务器群体到达负载均衡的效果。
1.2负载权值
根据能力与负载相匹配原则,设集群服务器系统m台服务器组成其中服务器Si(i=1,2,…,m)的固有能力为Wi,负载为Li(其中Wi和Li可以利用HTTPF软件对单台服务器的实际测试而得)[4],在集群服务器系统达到负载平衡时有:
(4)
为使集群服务器系统负载均衡,各服务器应以当前平均负载权值为基准调整各自的负载,因为,服务器的固有能力是常量。
1.3分配权值
计算出了每台服务器的负载权值后,就可以根据公式(2)得到平均负载权值。在当前的基础上通过从新分配调整随后时间段内各服务器的请求负载使整个群体实现负载均衡的效果。同时我们可以当前负载状态来推算后续负载情况。
令达到负载均衡状态时服务器Si分配的请求个数为nˉi对应的负载状况为Lˉi而服务器当前分配的请求个数ni和负载状况Li都可以测得。假设负载条件相同那么分配的请求数量的变化与负载的变化应是一致的即
(5)
根据公式1可以得到
(6)
代入公式3有
-ni=
(7)
公式5表达的是随后时间服务器Si应该被分配任务量的理论估算值,由于请求只能按次计算,所以理论估算值必须取整数。通过将服务器当前负载权值和平均负载权值进行比较,若大于,则对服务减少请求的数量,反之则增加,然后我们把每台服务器分配的任务数量相对整个服务器群体总体的数量中所占的比例称为该服务器的分配权值,记为WiA计算公式:
分配器按照集群中每台服务器的分配权值为其分配一定的请求任务负载。
1.4随机概率转发
目前现有的算法中如静态和动态加权分配算法[5],它们大多都采用固定比例的分配方式去分配权值和对应的比例。由于任务请求具体到达的数量和时间是无法控制的,因此这种固定的转发模式本身就会导致服务器的负载不均,为了避免这种固定模式的分配导致的周期之间的关联,于是我们利用随机概率转发模式去代替。
首先,我们预设整个服务器集群的系统空间为1。再通过计算整个服务器集群的请求处理能力以及每台服务器的分配权值,根据分配权值所占比例得出4台服务器(后面试验中所用的服务器)概率空间分别为0.1,0.15,0.25,0.5。
图2服务器的概率空间分布
当下一个任务请求到达分配器时,通过均衡算法计算出这个任务在[0,1]间的随机概率值,然后再根据该任务的概率值在整个概率空间的命中率来决定将此任务转发给那个服务器。由此可见服务器的分配权值越大,占有的概率空间也就越大,即当任务请求到来时被分配到的几率也就越高。且每次转发都是独立事件,连续转发在时间上相互不影响。从而服务器任务分配更加均匀。
图3嵌入式硬件平台
硬件系统中以Samsung公司的ARM92- 0T核的S3C2440A微处理器,并采用专业稳定的CPU内核电源芯片和复位芯片来保证系统运行时的稳定性,工作频率400MH- Z,扩展64M SDRAM为程序运行空间,该系统提供了丰富的接口资源来适配不同外部硬件的接入硬件平台设计框图如图3所示
嵌入式Web服务器为基于三层B/S结构的瘦Web服务器,板上系统为裁减后的Linux操作系统。目前,比较常用的Web服务器主要有三个,即HttPd、ThttPd和Boa,其中Boa是一个非常小巧的单任务WEB服务器,可执行代码60KB左右,且源代码开发,运行熟读开,系统安全性好,所以本设计Web选择Boa[6],系统主页面如图4所示。
图4嵌入式Web服务器体系结构图
为了使实验结果易于观察,首先,我们对单台嵌入式Web服务器进行测试。通过PC机在一段时间内连续向该服务器发送大量访问请求,当负荷达到系统所承受最高值并且系统稳定时,记录该时刻系统的处理能力,此能力也就是服务器的固有处理能力。然后,该文提出的是一种针对多台服务器也就是服务器群体的负载均衡算法,因此还需要对多台服务器进行类似的实验,此时访问不再是单纯的对Web服务器直接进行访问,而是在访问前需要通过均衡算法对群体性的访问进行分配,使各服务器的负载同时达到各自所承受的最大值并记录此时的访问请求数量。为了凸显该算法的优越性将其每台平均处理值和单台Web服务器相同时间内所处理的访问请求(处理的访问量是以第一次实验单台处理数量为基准,计算出二者的比值)进行对比,实验结果如图5所示。
3结束语
从图5可以看出,嵌入式Web服务器群中单台服务器在实验测试时刻对访问请求的平均处理量明显要高于直接对单台嵌入式Web服务器进行访问而处理的请求数。这是由于在服务器群体的多台服务器之间采用了负载均衡的算法,服务器与服务器之间相互协作,相互补充使得总体服务器的处理能力上升,由于网络和系统的原因导致不同时间动态分配值的不同所以服务器群体中单位服务器的平均处理量不是一个固定常数。
参考文献:
[1]韩树人,周贤娟,鄢化彪,等.基于嵌入式Web服务器的远程实时数据采集[J].计算机技术与发展,2008,18(1).
[2]陈耀东,吴阳波.基于嵌入式Web服务器的远程控制系统[J].微计算机信息,2007,23(11-2).
[3]喻莉,石冰心,朱光喜.多Web服务器系统的建模、分析与控制[J].通信学报,2001,8(22):34-39.
[4]郭成城,晏蒲柳.一种异构Web服务器集群动态负载均衡算法[J].计算机学报,2005,2(28):179-184.
[5]李旭东,杨铁军,路良友.嵌入式Web服务器负载均衡算法的研究与实现[J].电子质量,2010(6):68-70.
[6]焦双伟,喻金科.嵌入式Web服务器在控制系统中的设计与实现[J].计算机系统应用,2011,8(20):126-128.
关键词:嵌入式Web服务器;负载均衡;权值;随机概率分布;S3C2440A
中图分类号:TP301.6文献标识码:A文章编号:1009-3044(2012)10-2217-03
Research and Realization of Load Balancing Algorithm Based on the Embedded Web Server
YANG Zhen-quan, ZOU Chuan-yun, LI Zhen-yu
(School of Information Engineering, Southwest University of Science and Technology, Mianyang 621010, China)
Abstract: An algorithm requesting distribution dynamically based on stochastic probability is proposed to solve the bottleneck problem cased by increasing visits to embedded Web server. Related data is collected by monitoring current working load condition of the servers. Subsequent load distribution could be made more even through combining related data and stochastic probability distribution. Experiment results show that the algorithm can improve the multiple processing power of the embedded Web server effectively.
Key words: Embedded Web Server; load balancing; Weights; stochastic probability distribution; S3C2440A
隨着现代计算机网络技术的不断发展,传统的大型Web服务器已逐渐不能适应复杂环境和低成本的社会需要,嵌入式Web服务器此时应允而生,以它的低功耗和灵活性深受用户的喜爱,随着应用的范围越来越广,要求的处理能力和计算强度也相应增大[1],此时嵌入式Web服务其有限的硬件条件随着访问量和数据流量的增加不能提供相应资源的矛盾越发突出,特别是面对大量突发性或者紧急性的访问时,极易导致服务阻塞,系统崩溃,使相应的设备无法正常运行,轻则造成短期停止服务重则造成无法挽回的损失[2]。依靠单个的嵌入式Web服务器不能同时满足大量的请求服务,但若能将多个嵌入式Web服务器通过有效的组织使其成为一个完整的系统,并将客户端发送的大量请求合理的分发给该系统的各服务器,那么不但提高了单个服务器的处理能力,同时也有效避免网络瓶颈的发生,以上便是利用服务器集群实现负载均衡的基本思想。
1负载均衡算法的设计
图1多服务器负载模型图
图1给出了多服务器模型框架,即由:服务器,运行服务软件提供相应服务的机器;客户,也就是向嵌入式Web服务器发起请求响应的应用;负载处理算法,也就是给嵌入式Web服务器分配HTTP请求的算法[3]。
1.1算法设计思想
通过实时监测各个服务器现有的访问对其工作负荷状态产生的影响即服务器实际承受的访问量,再结合服务器其自身软硬件条件所能提供的服务能力计算出每台服务器当前的负载权值以及平均负载权值。根据服务器应该分配不大于其自身固有承载力的服务原则基础上在随后时间段内对于那些超负荷工作的服务器应减少其请求服务对于那些仍处于“饥饿”状态也就是低于平均负载权值的服务器应对其增加请求访问服务,通过此分配使整个服务器群体到达负载均衡的效果。
1.2负载权值
根据能力与负载相匹配原则,设集群服务器系统m台服务器组成其中服务器Si(i=1,2,…,m)的固有能力为Wi,负载为Li(其中Wi和Li可以利用HTTPF软件对单台服务器的实际测试而得)[4],在集群服务器系统达到负载平衡时有:
(4)
为使集群服务器系统负载均衡,各服务器应以当前平均负载权值为基准调整各自的负载,因为,服务器的固有能力是常量。
1.3分配权值
计算出了每台服务器的负载权值后,就可以根据公式(2)得到平均负载权值。在当前的基础上通过从新分配调整随后时间段内各服务器的请求负载使整个群体实现负载均衡的效果。同时我们可以当前负载状态来推算后续负载情况。
令达到负载均衡状态时服务器Si分配的请求个数为nˉi对应的负载状况为Lˉi而服务器当前分配的请求个数ni和负载状况Li都可以测得。假设负载条件相同那么分配的请求数量的变化与负载的变化应是一致的即
(5)
根据公式1可以得到
(6)
代入公式3有
-ni=
(7)
公式5表达的是随后时间服务器Si应该被分配任务量的理论估算值,由于请求只能按次计算,所以理论估算值必须取整数。通过将服务器当前负载权值和平均负载权值进行比较,若大于,则对服务减少请求的数量,反之则增加,然后我们把每台服务器分配的任务数量相对整个服务器群体总体的数量中所占的比例称为该服务器的分配权值,记为WiA计算公式:
分配器按照集群中每台服务器的分配权值为其分配一定的请求任务负载。
1.4随机概率转发
目前现有的算法中如静态和动态加权分配算法[5],它们大多都采用固定比例的分配方式去分配权值和对应的比例。由于任务请求具体到达的数量和时间是无法控制的,因此这种固定的转发模式本身就会导致服务器的负载不均,为了避免这种固定模式的分配导致的周期之间的关联,于是我们利用随机概率转发模式去代替。
首先,我们预设整个服务器集群的系统空间为1。再通过计算整个服务器集群的请求处理能力以及每台服务器的分配权值,根据分配权值所占比例得出4台服务器(后面试验中所用的服务器)概率空间分别为0.1,0.15,0.25,0.5。
图2服务器的概率空间分布
当下一个任务请求到达分配器时,通过均衡算法计算出这个任务在[0,1]间的随机概率值,然后再根据该任务的概率值在整个概率空间的命中率来决定将此任务转发给那个服务器。由此可见服务器的分配权值越大,占有的概率空间也就越大,即当任务请求到来时被分配到的几率也就越高。且每次转发都是独立事件,连续转发在时间上相互不影响。从而服务器任务分配更加均匀。
图3嵌入式硬件平台
硬件系统中以Samsung公司的ARM92- 0T核的S3C2440A微处理器,并采用专业稳定的CPU内核电源芯片和复位芯片来保证系统运行时的稳定性,工作频率400MH- Z,扩展64M SDRAM为程序运行空间,该系统提供了丰富的接口资源来适配不同外部硬件的接入硬件平台设计框图如图3所示
嵌入式Web服务器为基于三层B/S结构的瘦Web服务器,板上系统为裁减后的Linux操作系统。目前,比较常用的Web服务器主要有三个,即HttPd、ThttPd和Boa,其中Boa是一个非常小巧的单任务WEB服务器,可执行代码60KB左右,且源代码开发,运行熟读开,系统安全性好,所以本设计Web选择Boa[6],系统主页面如图4所示。
图4嵌入式Web服务器体系结构图
为了使实验结果易于观察,首先,我们对单台嵌入式Web服务器进行测试。通过PC机在一段时间内连续向该服务器发送大量访问请求,当负荷达到系统所承受最高值并且系统稳定时,记录该时刻系统的处理能力,此能力也就是服务器的固有处理能力。然后,该文提出的是一种针对多台服务器也就是服务器群体的负载均衡算法,因此还需要对多台服务器进行类似的实验,此时访问不再是单纯的对Web服务器直接进行访问,而是在访问前需要通过均衡算法对群体性的访问进行分配,使各服务器的负载同时达到各自所承受的最大值并记录此时的访问请求数量。为了凸显该算法的优越性将其每台平均处理值和单台Web服务器相同时间内所处理的访问请求(处理的访问量是以第一次实验单台处理数量为基准,计算出二者的比值)进行对比,实验结果如图5所示。
3结束语
从图5可以看出,嵌入式Web服务器群中单台服务器在实验测试时刻对访问请求的平均处理量明显要高于直接对单台嵌入式Web服务器进行访问而处理的请求数。这是由于在服务器群体的多台服务器之间采用了负载均衡的算法,服务器与服务器之间相互协作,相互补充使得总体服务器的处理能力上升,由于网络和系统的原因导致不同时间动态分配值的不同所以服务器群体中单位服务器的平均处理量不是一个固定常数。
参考文献:
[1]韩树人,周贤娟,鄢化彪,等.基于嵌入式Web服务器的远程实时数据采集[J].计算机技术与发展,2008,18(1).
[2]陈耀东,吴阳波.基于嵌入式Web服务器的远程控制系统[J].微计算机信息,2007,23(11-2).
[3]喻莉,石冰心,朱光喜.多Web服务器系统的建模、分析与控制[J].通信学报,2001,8(22):34-39.
[4]郭成城,晏蒲柳.一种异构Web服务器集群动态负载均衡算法[J].计算机学报,2005,2(28):179-184.
[5]李旭东,杨铁军,路良友.嵌入式Web服务器负载均衡算法的研究与实现[J].电子质量,2010(6):68-70.
[6]焦双伟,喻金科.嵌入式Web服务器在控制系统中的设计与实现[J].计算机系统应用,2011,8(20):126-128.