许世辉,黄秀彬,安业腾,宋鹏飞,刘 勃,李承桓
(1. 东北电力大学,吉林 吉林 132012;2. 太原理工大学,山西 太原 030024;3. 天津大学,天津 300072;4. 河海大学,江苏 南京 210024;5. 青岛理工大学,山东 青岛 266520;6. 哈尔滨理工大学,黑龙江 哈尔滨 150080)
计算机网络的兴起、发展与普及,使得云服务范围逐渐扩张,涉及多个领域,尤其是移动网络领域,终端设备的功能也发生了质的变化,从最初的输入输出功能转变成具有一定的数据运算功能。一般情况下,大型计算机网络中存在着多个终端,以供多个用户进行数据的输入与输出。随着计算机网络规模的增加,用户的数量也急剧增加,信息数据更是呈指数级别暴增,此时需要在网络结构中构建一个负载均衡的法则,保障网络资源利用率达到最大,多运营终端工作效率达到最佳,为用户提供更优质的服务。
计算机网络技术的升级与完善,多运营终端数量的增多,导致网络资源负载很难实现均衡状态,致使终端存在着稳定性较差、吞吐量较小等缺陷,无法满足现今用户的需求。如何设计一个有效的多运营终端自适应负载均衡算法,是目前计算机网络技术发展中亟待解决的问题之一。就现有研究成果来看,使用最为广泛的算法是通过负载因素表示终端节点的综合负载,以此为基础,对终端节点权值进行科学的调节,保障负载最小终端节点提供服务。上述算法虽然能够有效均衡多运营终端节点之间的负载,但依然存在着吞吐量小、稳定性差的问题,无法适应计算机网络未来发展趋势,故提出基于多Agent技术的多运营终端自适应负载均衡算法研究。多Agent技术能够模拟人类专家的行为,通过共同协作解决较为复杂的问题,希望通过多Agent技术的应用,提升多运营终端自适应负载均衡算法的整体性能,为用户提供更加优质的网络服务。
负载状态定义与负载信息采集是多运营终端自适应负载均衡的前提与基础,也是负载均衡算法实现的关键环节。只有准确地识别每个多运营终端节点的负载情况,才能实现多运营终端的自适应负载均衡。
常规情况下,多运营终端节点负载是实时变化的,通过实时采集终端节点负载信息,反映终端节点负载状态,以此为基础,进行负载均衡处理才能达到最佳的效果。
此研究依据多运营终端负载均衡需求,采用分布式信息采集策略与集中迁移策略采集终端节点负载信息,为了方便研究的进行,对负载进行量化处理,表达式为:
(1)
式(1)中,()表示的是时刻对应的综合负载量;表示的是时间间隔数量;(,)表示的是以时刻-Δ为起点的第个瞬间终端节点负载量;()表示的是权值,反映着终端节点负载状态对负载均衡效果的影响程度。
上述过程完成了多运营终端负载信息的采集及其量化,以此为基础,定义终端节点的负载状态,为后续Agent负载均衡结构的搭建打下坚实的基础。
以上述量化后的多运营终端节点负载信息为依据,引入多Agent技术搭建负载均衡结构,为后续网络资源模型的构建做准备。
Agent是一种处于一定环境下包装的计算机系统,能根据用户需求进行灵活、自主的活动。终端负载均衡过程中,主要应用三种类型的Agent,分别为功能Agent、通信Agent及其中央Agent。其中,功能Agent承担着计算任务;通信Agent承担着采集功能Agent信息值的任务;中央Agent承担着通信Agent信息采集的任务。需要注意的是,通信Agent只与中央Agent进行通信,并且通信Agent与中央Agent主要承担的是管理功能,自身运算量较小,不参与负载均衡的计算。
Agent负载均衡结构如图1所示。
图1 Agent负载均衡结构示意图
如图1所示,整个Agent负载均衡结构中,每个圆圈均表示一个终端节点,每个终端节点上均部署一个通信Agent,应用其对终端节点负载信息进行相应的采集,并将采集到的终端节点负载信息反馈给中央Agent。需要注意的是,每个终端节点上的通信Agent相互独立,不进行交互。
通过上述过程完成了Agent负载均衡结构的搭建,阐述了应用的Agent类型与功能,为多Agent技术的应用以及负载均衡算法的推出提供充足的准备。
以上述搭建的Agent负载均衡结构为基础,结合多运营终端节点工作特点,构建网络资源模型,为多运营终端负载均衡的实现提供准确的数据支撑。
在多Agent技术的应用下,用户只需要将任务提交给Agent,由Agent对网络资源进行分配,将负载均衡问题转化为Agent任务,简化负载均衡问题,加快终端负载均衡效率。基于多Agent技术的网络资源模型如图2所示。
图2 基于多Agent技术的网络资源模型示意图
如图2所示,Agent对于用户与网络资源是相对透明的,并且只与相连的终端节点进行交互,每个Agent管理一组网络资源,响应用户的任务请求。
上述过程完成了网络资源模型的构建,并明确了Agent的管理任务与交互方式,为后续多运营终端负载均衡的实现提供充足的准备。
以上述构建的网络资源模型为基础,结合多Agent技术推出多运营终端自适应负载均衡算法,执行算法的步骤即可实现终端节点负载的自适应均衡处理,为用户提供更加优质的网络服务。
首先,终端节点负载状态采用二维数组来表示,表达式为
(2)
式(2)中,矩阵表示的是终端节点负载状态,其中,行表示的是终端节点号;列表示的是Agent号;表示的是终端节点的总数量;表示的是参与终端负载均衡的Agent数量。
在多运营终端节点负载状态更新过程中,随机产生一个数值,其取值范围为[1,],设置为1,为0,以此类推,对每个Agent进行相应的选择,即可获得多运营终端节点的新状态,将其记为。
其次,在多Agent技术应用过程中,通信模式可能存在着些许差异,网络带宽有可能存在不同,为了避免上述问题的出现,此研究利用惩罚函数对差异进行量化,将其称为网络差异系数,表达式为
(3)
式(3)中,表示的是网络差异系数;表示的是终端节点初始负载状态下,Agent所在网络的带宽;表示的是负载状态更新后,Agent所在网络的带宽;表示的是终端节点负载状态更新值;表示的是终端节点负载状态更新辅助参数,取值范围为[0,1]。
依据上述更新的终端节点负载状态以及网络差异系数,编号处理Agent,取值范围为[1,],设置Agent计算速度为,计算负载为,Agent计算资源编号为1~。则多运营终端负载总和表达式为:
(4)
Agent计算速度表达式为:
令人讶异的是,题中所给的四个答案竟没有一个是对的,着实贻笑大方.正确答案为:120-12n, 其中 n=1, 2, 3 …….对教师和教材编写者都有难度的题目,为什么要十来岁的孩子们做呢?
(5)
式(5)中,表示的是Agent计算速度权重数值,全部的权重数值总和为1。
Agent计算时间计算公式为:
(6)
依据式(6)的计算方式,结合终端节点负载更新状态,即可获得多运营终端节点平均计算时间,表达式为:
(7)
式(7)中,表示的是终端节点平均计算时间的辅助因子,需要根据实际终端节点运行状态进行科学的设置。
而对于多运营终端负载均衡来说,就是科学调整Agent的计算时间,使无线接近,从而使得的负载达到均衡状态。常规情况下,迁移产生的负载量为:
(8)
式(8)中,表示的是迁移负载量;表示的是单位迁移负载量。
在迁移过程中,终端节点计算时间也会产生相应的变化,变化向量记为={-,-,…,-}。为了方便研究的进行,认定终端节点之间的每一条边都只包含一个方向,则负载迁移向量记为={,,…,}。则负载均衡算法表达式为
(9)
式(9)中,右上角标T表示的是矩阵转置符号。矩阵中元素的取值规则为:
(10)
将式(10)代入到式(9)中,对式(9)进行求解,获取相应的矩阵T,即可获得多运营终端负载均衡数据,将其反馈给Agent,依据多Agent技术要求,对计算资源与时间进行合理的分配与调度,实现终端负载的均衡处理。
通过上述过程实现了多运营终端自适应负载均衡,合理地分配了终端节点的计算资源与时间,使得终端节点达到最佳的工作状态,为用户提供更优质的网络服务,也为负载均衡提供新的方法支撑。
为了验证提出算法的应用性能,选取基于人工蜂群的云计算负载均衡算法作为对比算法,设计对比实验,具体实验过程如下所示:
为了保障实验结论的准确性,设置负载均衡任务为,多运营终端数量为,整体负载均衡调度如图3所示。
图3 负载均衡调度实验框架示意图
如图3所示,多运营终端之间存在着交互关系,当终端节点负载过重时,需要启动负载均衡任务,对计算资源进行合理的分配与调度,以此来保障终端的稳定运行,为用户提供基础网络服务。
依据上述选取的实验对象,结合多运营终端自适应负载均衡实验需求,选取吞吐量、平均响应延迟与负载均衡度作为算法应用性能评价指标,以此来量化显示算法的负载均衡效果。
吞吐量、平均响应延迟与负载均衡度计算公式为:
(11)
通过上述过程完成了评价指标的选取,并确定了评价指标的计算公式,为后续实验结果的分析打下了坚实的基础。
通过实验获得吞吐量数据如表1所示。
表1 吞吐量数据表
如表1数据所示,相较于对比算法,应用提出算法获得的吞吐量更大,最大值能够达到6.48bit,表明提出算法网络性能更佳。
通过实验获得平均响应延迟如图4所示。
图4 平均响应延迟数据图
如图4数据所示,相较于对比算法,应用提出算法获得的平均响应延迟更短,最小值能够达到0.28s,表明提出算法任务响应实时性更强。
通过实验获得负载均衡度如图5所示。
图5 负载均衡度数据图
如图5数据所示,相较于对比算法,应用提出算法获得的负载均衡度更高,最大值能够达到56%,表明提出算法负载均衡效果更好。
上述实验数据显示:与对比算法做比较,应用提出算法获得的吞吐量较大,平均响应延迟较短,负载均衡度较高,充分证实了提出算法具有更好的负载均衡效果。
应用多Agent技术设计了新的多运营终端自适应负载均衡算法。实验证明,极大地提升了终端节点的吞吐量,缩短了终端节点的平均响应延迟,增大了多运营终端的负载均衡度,能够为终端负载均衡提供更有效的算法支撑,也为负载均衡相关研究提供了一定的理论参考。