网页游戏服务器负载均衡算法WLC的改进
2016-05-26商丘职业技术学院计算机系河南商丘476000
李 冬(商丘职业技术学院 计算机系,河南 商丘 476000)
网页游戏服务器负载均衡算法WLC的改进
李 冬
(商丘职业技术学院 计算机系,河南 商丘 476000)
摘 要:网页游戏已成为人们休闲娱乐的重要方式之一.高强度的负荷对网页游戏服务器的性能要求越来越高,调度算法设计的好坏直接决定了集群在负载均衡上的表现.针对WLC调度算法在实际运用中存在的问题,提出一种改进的WLC算法,测试结果良好.
关键词:WLC算法;网页游戏; 服务器;负载均衡
随着网页游戏用户数量和网络流量的迅速增长,日益增长的访问量和高强度的负荷对网页游戏服务器的性能要求也越来越高,服务器端的任何中断都将给游戏供应商和游戏玩家造成损失.调度算法设计的好坏直接决定了集群在负载均衡上的表现,不好的算法会导致集群的负载失衡.WLC算法是一种动态调度算法,是最少连接算法的改进,它为每个真实服务器Si指定一个整数值Wi标记服务器的性能[1-2].
1 WLC算法存在的问题与改进的思路
1.1 存在问题
最少连接法针对TCP连接进行,均衡器纪录当前状态下所有活跃连接,并把新的请求发送给当前最少连接数的节点,但由于不同网页游戏对系统资源的消耗存在差异,仅靠连接数很难真实地反映出应用负载情况.最少连接法WLC算法应用广泛,但也存在以下问题:①权值是固定的,不能动态配置.WLC算法的权值需要管理员手工配置,不能在系统运行过程中自动动态完成,以及无法估算出每台节点服务器的动态权值等问题.这些是负载均衡器和节点服务器不需额外安装监控和反馈软件所带来的负面问题[2].②权值估算是否合理.负载均衡算法中重要的参数是权值,权值的设置是否科学、合理,直接影响负载均衡系统的效果和性能.在传统的WLC算法中,权值的设置是由系统管理员根据服务器节点硬件的配置估算的,估算方法没有考虑网络的实际运行情况,也不能反映出负载的真实情况,这种权值设置方法显然是不科学的.在WLC算法中,权值的设置是根据服务器集群系统中的每一台服务器的负载状况和性能设定的一个整数值,服务器的权值越高,表示在任何时刻其上的活动连接数最多.这种权值的设置方法没有考虑每一个连接请求对系统资源的消耗,不能反映真实的负载情况.
1.2 WLC算法改进的思路
要想提高网页游戏服务器系统的效率,以最快的速度响应用户的请求,在进行负载均衡算法设计时,必须考虑如下的原则:①为了平均分配各服务器的负载,尽量将玩家分散到各个游戏服务器上;②尽量减少玩家跨服务器间的信息传递,从而减少服务器与客户端的通信成本;③尽量减少玩家在一次游戏过程中因为移动而必须更换服务器,减少资源加载的次数.
基于以上考虑,对WLC算法进行改进,提出了一种动态改变服务器权值的优化思路,改进方法主要涉及以下两个方面:①建立影响负载参数选择的数学模型,根据服务器的处理性能,考虑服务器的可用内存、CPU资源、网络宽带、当前连接数、I/O设备等综合因素,将这些因素进行量化处理,选择合适的影响因子,实时计算服务器的负载数据,并以此作为服务器权值调整的依据.②动态调整服务器的权值大小.根据WLC的调度算法的实现思想,当有新的客户连接请求时,服务器会优先将连接转发到当前负载相对最低的服务器节点上,这样使得整个服务器的性能能够更好地发挥出来.在算法设计时,权值大小根据服务器的负载情况,适当地改变大小.当整个服务器系统中出现权值较高,同时又处于高负载运行时,就把该服务器的权值减小;相反,如果出现服务器权值较小,同时负载较低的状况下,把该服务器的权值调大.负载均衡器上运行服务端监控进程,监控进程负责监视和收集集群内各个节点的负载信息;而每个服务器节点上运行客户端进程,负责定时向均衡器报告自身的负载状况[3].监控进程根据收到的全部节点的负载信息进行同步操作,即对将要分配的任务按权值的比例重新进行分布.
2 改进后WLC算法的实现
根据对WLC算法改进的思路,需要优化原有WLC算法,优化后的算法能够根据服务器的实际负载情况,动态地调整其权值[3-4].改进算法主要涉及服务器负载因子的选择和权值调整的方法.
2.1 服务器负载因子的选择
传统的WLC算法主要根据服务器的连接数作为负载分配的主要依据,但在实际的网络环境下,影响服务器性能的负载还包括可用内存的使用情况、磁盘I/O利用率、CPU的使用率、系统响应时间、进程数以及网络利用率等.因此,改进的WLC算法不能只考虑服务的连接数这一因素,还必须综合考虑多个负载因子的影响.一般而言,获取的服务器系统的性能指标越多,计算出来的负载实时数据就越准确,越能反映系统的实际情况.但是过多的性能指标会消耗系统的大量资源,增加系统的负担,在一定程度上又会影响系统的性能,因此,选择的负载因子也并非越多越好.本文选择3个比较有代表性的指标,分别是网络带宽利用率(用变量DAIKUAN表示)、内存利用率(用变量NEICUN表示)以及CPU的利用率(用变量CPUOCCU表示),各变量的值区间为[0,1].
确定了服务器负载因子后,还要确定各变量所对应的比例值,才能计算出服务器系统的负载总数.由于各负载因子的重要程度不同,所占的比例也不一样.出于研究的需要,在系统开始运行前,先规定3个负载因子的比例值,分别设置为B-daikuan=0.15,B-neicun=0.35,B-cpuoccu=0.5,这3个参数分别代表网络带宽利用率、内存利用率和CPU的利用率对应的负载参数所占的比例.设置好各变量对应的比例后,服务器的实时负载数值M的计算公式为
2.2 权值调整的方法
根据算法改进的思路,当计算出的服务器负载数值较小时,需要增加权值让服务器响应更多的客户请求;当计算出的服务器负载数值较大时,需要减小权值以减轻服务器系统的负荷[5].权值和负载数值之间是相互制约的,设计相关算法以实现系统自动对权值的调整,计算公式为式中:A’为新权值;A为当前的权值;B是权值改变的调节系数,可根据系统的实际情况调整,B值越大,当负载发生一点改变时,权值的变动范围就会越大;当B=10时,权值的变动区间为[-3,7].
从式(2)可以看出,服务器的负载高于或低于0.65时,权值就要改变.当计算出来的系统负载值M<0.65时,说明服务器处于空闲状态,权值就要增加;当计算出来的系统负载值M>0.65时,说明服务器处于繁忙状态,系统的负荷较重,不能响应客户端的新请求,权值就要减少.
综合考虑内存利用率、CPU利用率和网络带宽利用率后,WLC算法采用动态权值综合考虑服务器的当前负载情况和不同节点的处理能力,改进后WLC算法的应用模型如图1所示.
改进后WLC算法的描述过程为:①服务器端每隔一个周期(假设为T),分别获取CPU利用率、内存利用率和网络带宽利用率;②计算服务器负载值,并发送给负载均衡器;③负载均衡器判读是否需要计算新权值,若需要,转步骤④,否则转步骤⑤;④根据CPU利用率、内存利用率和网络带宽利用率计算服务器的新权值;⑤找出当前连接数和权值都较小的服务器节点N;⑥将接收到的用户请求发送给服务器节点N,响应用户的请求.
图1 改进后WLC算法的处理流程
3 改进后WLC算法的效果评价
为了评价改进后WLC算法的性能,用性能测试工具Loadrunner进行测试,收集并分析试验数据,对改进前后算法的性能进行比较得出评价结果.Loadrunner能够记录系统的响应时间、页面展现时间、操作执行时间等参数,计算系统的响应速度和吞吐量等指标,从而判断系统的性能,在这里主要分析用户响应时间这一指标.改进前后WLC算法性能对比见图2.
通过试验数据和对比图可以得出:当客户的并发连接数比较小时,改进前后的WLC算法效果类似,改进后的WLC算法并没太大的优势,TTFB甚至更大.这是由于并发用户数较少时,服务器系统的负载很低,改进后的WLC算法本身运行就需要消耗一定的资源和时间,并没有表现出自己的优势.随着并发用户数的增多(增加到300个用户以后),服务器负载变大,改进后WLC算法的TTFB时间远远小于原算法的TTFB时间,改进后算法的性能有了一定的提升.本研究是基于网页游戏服务器负载均衡展开的,实践证明,改进后的WLC算法对于其他网络服务器仍然适用,具有广泛的推广价值.
图2 改进前后WLC算法性能对比图
参考文献:
[1] 刘玉艳,沈明玉. 一种LVS负载均衡调度算法WLC的改进[J]. 制造业自动化,2010,32(9):187-191.
[2] 徐光侠,祝伟华. MMOG的网络负载均衡算法[J]. 重庆大学学报:自然科学版,2005,28(11):39-42.
[3] 万勇. 基于lvs的负载均衡策略算法的研究与改进[D]. 四川:西南交通大学,2010.
[4] 肖自乾,陈经优,王端庆. 基于改进的自适应遗传算法路经优化研究[J]. 苏州市职业大学学报,2016,27(1):28-30.
[5] 孙文胜,朱玮. IMEP中负载均衡功能的实现[J]. 计算机系统应用,2009,18(12):153-156.
(责任编辑:李 华)
引文格式: 李冬.网页游戏服务器负载均衡算法WLC的改进[J].苏州市职业大学学报,2016,27(2):31-33.
中图分类号:TP312
文献标志码:A
文章编号:1008-5475(2016)02-0031-03
DOI:10.16219/j.cnki.szxbzk.2016.02.008
收稿日期:2015-11-24;修回日期:2015-12-20
作者简介:李 冬(1982-),男,河南商丘人,讲师,硕士,主要从事系统设计与应用、图形图像处理研究.
An Improved WLC Algorithm on Load Balancing of Web Games Servers
LI Dong
(Department of Computer,Shangqiu Polytechnic College,Shangqiu 476000,China)
Abstract:With the development of network technology, web games become a popular way of entertainment and leisure in people’s life. High-intensity load requires higher performance of web game servers; the quality of the design of scheduling algorithm determines the performance on load balancing. Addressing the problems of using WLC algorithms in practice, this paper proposes an improved WLC algorithm with desired test results.
Key words:WLC algorithms;web games;servers;load balancing