一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种负载均衡方法、系统、电子设备及存储介质与流程

2022-12-20 21:27:29 来源:中国专利 TAG:


1.本发明涉及网络安全技术领域,具体涉及一种负载均衡方法、系统、电子设备及存储介质。


背景技术:

2.随着云计算、大数据、人工智能的迅猛发展,应用服务的数据量呈现指数级别的增长,传统的后端网络接入层受限于接入层入口的带宽瓶颈和网络硬件的高昂成本,已无法应对随之而来的海量数据。新兴的网络技术不断涌现。软件定义网络(sdn)通过将控制层与数据转发层解耦,控制层负责管控全局网络,数据转发层负责按照控制层下发的流表完成数据转发,极大提高了网络部署和管理的灵活性,并实现了对数据流量的集中管控。同时,随着软件交换机的蓬勃发展,通过在业务节点部署软件交换机,得以减少网络跳数,进而减少网络时延的方式也越来越普及。对此,在面对海量数据时,越来越多应用服务的网络接入层,通过采用软件路由的方式,直接将应用服务的逻辑处理后端作为硬件交换机的下一跳,实现了扩展性强、经济高效的多路径方案,从而横向扩展了网络接入层入口的带宽,解决了带宽不足的问题。
3.现有的多路径之间负载均衡方法无法感知路径的拥塞状态和链路故障,容易造成多条数据流在路径上发生哈希冲突,导致链路拥塞和应用性能下降。一般的流量大小情况下,由于短流数据量小,同时处理速度快,些许的等待时间几乎可以忽略不计,然而,海量短流场景极易造成网络的拥塞。


技术实现要素:

4.有鉴于此,本发明实施例提供了一种负载均衡方法、系统、电子设备及存储介质,以均衡交换机上的负载,减小响应时间,提升用户体验。
5.根据第一方面,本发明实施例提供了一种负载均衡方法,应用于中央控制器,所述方法包括:
6.获取交换机发送的本地模型的梯度参数,根据所述梯度参数优化全局模型,并将所述全局模型发送给所述交换机,以确定交换机的资源的使用率,所述资源包括处理器、内存和网络带宽;
7.获取交换机基于所述资源的使用率以及蚁群算法确定的子信息素浓度,并基于所述子信息素浓度确定交换机上的任务流数量;
8.获取交换机的实时健康系数,将所述实时健康系数与初始权重结合得到实时健康矩阵,所述初始权重是基于所述任务流数量计算得到的;
9.将所述实时健康矩阵与预设健康矩阵比较,根据比较结果调整交换机的负载。
10.本实施例提供的负载均衡方法,获取交换机在本地计算的本地模型的梯度参数,基于梯度参数优化全局模型,并控制交换机基于全局模型对本地模型进行优化,从而计算交换机对应的资源的使用率。基于蚁群算法和得到的交换机的资源的使用率确定最优分
配,即交换机上的任务流数量,根据任务流数量确定交换机的权重,设定健康系数,并基于交换机的权重得到实时健康矩阵。通过比较实时健康矩阵和预设健康矩阵实现对交换机的负载的调整,从而实现交换机的负载均衡,减少服务响应时间,提升用户的使用体验。
11.结合第一方面,在一种实施方式中,所述基于所述子信息素浓度确定交换机上的任务流数量,包括:
12.循环获取所述交换机基于所述资源的使用率以及蚁群算法确定的子信息素浓度;
13.对所述子信息素浓度进行全局更新,得到信息素浓度,并对路径进行优化;
14.基于所述优化的路径确定交换机上的任务流数量。
15.结合第一方面,在一种实施方式中,所述信息素浓度采用如下公式计算得到:
16.τ
ij
(t 1)=(1-ρ)τ
ij
(t) δτ
ij
(t)
17.其中,ρ表示信息素挥发程度,δτ
ij
(t)表示蚁群在路径上释放的信息素总量,τ
ij
(t 1)表示交换机i和交换机j路径上在t 1时刻的信息素浓度。
18.结合第一方面,在一种实施方式中,所述获取交换机的实时健康系数,将所述实时健康系数与初始权重结合得到实时健康矩阵,包括:
19.检测交换机的路径健康情况,并根据所述交换机的路径健康情况确定交换机的实时健康系数;
20.将交换机对应的初始权重与实时健康系数相乘,确定实时健康矩阵。
21.根据第二方面,本发明实施例提供了一种负载均衡方法,应用于交换机,所述方法包括:
22.获取数据流特征信息,基于所述数据流特征信息确定梯度参数,并将所述梯度参数发送给中央控制器;
23.获取中央控制器发送的全局模型,基于所述全局模型优化本地模型,并根据所述本地模型与所述数据流特征信息计算得到资源的使用率,所述全局模型是所述中央控制器基于所述梯度参数优化得到的;
24.基于所述资源的使用率和蚁群算法确定子信息素浓度,并将所述子信息素浓度发送给所述中央控制器,以调整负载。
25.结合第二方面,在一种实施方式中,所述基于所述资源的使用率和蚁群算法确定子信息素浓度,包括:
26.基于蚁群算法分配蚂蚁的搜索任务,基于所述资源的使用率确定启发因子;
27.根据所述启发因子计算所述蚂蚁移动到其他交换机的概率;
28.当所述蚂蚁移动至其他交换机,根据路径上新增的信息素以及蚁周模型计算子信息素浓度。
29.结合第二方面,在一种实施方式中,所述蚂蚁移动到其他交换机的概率采用如下公式计算:
[0030][0031]
其中,表示蚂蚁k在下一时刻访问交换机j的概率,α表示蚂蚁对信息素
的敏感程度,β表示蚁群对信息素的敏感程度,表示交换机i和交换机j路径上在t时刻的信息素浓度,η
ij
表示启发因子,启发因子用于描述交换机j对交换机i上蚂蚁的吸引程度,可表示为η
ij
=1/d
ij
,d
ij
表示交换机j和交换机i间的距离,allowedk表示尚未访问的交换机集合。
[0032]
根据第三方面,本发明实施例提供了一种负载均衡系统,包括:
[0033]
中央控制器,所述中央控制器用于执行第一方面或第一方面的任意一种实施方式的负载均衡方法;
[0034]
至少一个交换机,所述交换机与所述中央控制器连接,所述交换机用于执行第二方面或第二方面的任意一种实施方式的负载均衡方法。
[0035]
根据第四方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面、第一方面的任意一种实施方式、第二方面或第二方面的任意一种实施方式中所述的负载均衡方法。
[0036]
根据第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一方面、第一方面的任意一种实施方式、第二方面或第二方面的任意一种实施方式中所述的负载均衡方法。
附图说明
[0037]
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]
图1是根据本发明实施例的负载均衡方法的流程图;
[0039]
图2是根据本发明实施例的gru时序性能预测方法的示意图;
[0040]
图3是根据本发明实施例的负载均衡方法的流程图;
[0041]
图4是根据本发明实施例加权等价多路径示意图;
[0042]
图5是根据本发明实施例的负载均衡系统的示意图;
[0043]
图6是根据本发明实施例的负载均衡系统的示意图;
[0044]
图7是本发明实施例提供的电子设备的结构示意图。
具体实施方式
[0045]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]
根据本发明实施例,提供了一种负载均衡方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0047]
在本实施例中提供了一种负载均衡方法,图1是根据本发明实施例的负载均衡方法的流程图,该方法应用于中央控制器,如图1所示,该流程包括如下步骤:
[0048]
s11,获取交换机发送的本地模型的梯度参数,根据梯度参数优化全局模型,并将全局模型发送给交换机,以确定交换机的资源的使用率。
[0049]
交换机可以为软件交换机,交换机的资源可以包括cpu(处理器)、内存和网络带宽。软件交换机对本地监控的数据流特征信息进行归一化等预处理,其中数据流特征信息可以包括从src到dst的流数据包大小的平均值,从dst到src的流数据包大小的平均值,包最小值,包最大值,包平均值,包传输时间,握手时间(tcp)等。交换机将数据流特征信息作为数据集,可以将数据集按照预设比例进行划分,例如按照7:3的比例,分别作为训练数据集和测试数据集,同时尽可能保持数据分布的一致性,避免因数据划分而引入额外的偏差,对最终结果产生影响。
[0050]
中央控制器将联合gru(gated recurrent unit,门控循环单元)任务和初始参数发送至交换机,初始参数可以设置为1。gru神经网络是lstm(long short-term memory,长短期记忆)的一个变体,gru在保持了lstm的效果同时又使结构更加简单,包括更新门和重置门。更新门控制前一时刻的状态信息被带入到当前状态中的程度,值越大前一时刻的状态信息带入越多。重置门控制忽略前一时刻的状态信息的程度,值越小说明忽略得越多。交换机对划分出的训练数据集进行归一化处理,训练数据集归一化之后存在较大的数值,为防止梯度消失,激活函数σ使用修正线性单元(rectified linear unit,relu)。同时,使用relu会使部分神经元为0,造成网络的稀疏性,并且减少参数之间的相互依赖关系,有效地缓解了过拟合问题。relu函数表达式如下所示:
[0051]
relu=max(0,x)
[0052]
为充分利用软件交换机的计算性能,以及缓解中央控制器的性能压力,并减少可避免的数据传输所带来的额外带宽开销。对于cpu、内存和网络带宽的时序预测,将gru与联邦学习相结合,如图2所示的基于联邦学习的gru时序性能预测方法。
[0053]
交换机获取中央控制器发送的联合gru任务,开启联合gru任务并初始化系统参数后,在本地根据cpu、内存、网络带宽以及数据流特征信息等本地数据进行计算,计算完成后将得到的梯度参数发送给中央控制器。负载均衡系统中可以包括一个或多个交换机,中央控制器接收至少一个交换机发送的梯度参数。在联邦学习中通过分布式训练得到各个局部的梯度参数,再根据各局部梯度参数对全局模型进行优化。中央控制器在收到交换机的梯度参数后,对这些梯度参数进行聚合操作,在聚合的过程中侧重考虑效率、性能等因素。例如,因为系统的异构性,中央控制器有时可能不会等待所有交换机的数据上传,而是选择一个合适的交换机子集作为收集目标。中央控制器基于获取的梯度参数对全局模型进行聚合优化后,将优化后的全局模型发送给参与gru任务的交换机。交换机根据接收到的全局模型更新本地模型,并对本地模型性能进行评估,若性能达到预设情况,即性能足够好时,停止训练,联合建模结束;若性能不足,交换机在本地再次计算梯度参数并发送给中央控制器,直至最终的本地模型性能达到预设情况。中央控制器保存训练好的全局模型,可以通过全局模型计算得到初始参数,并将初始参数发送给交换机,交换机基于初始参数以及训练好的本地模型计算该交换机对应的各资源的使用率,例如cpu、内存、网络带宽等的使用率。
[0054]
s12,获取交换机基于资源的使用率以及蚁群算法确定的子信息素浓度,并基于子
信息素浓度确定交换机上的任务流数量。
[0055]
中央控制器获取交换机计算的各自的资源的使用率,采用蚁群算法来确定各交换机上的任务流数量。蚁群算法是一种模拟自然界蚂蚁搜索食物回巢行为的人工智能优化算法,通过蚁群个体间的协作以寻找最优路径。蚁群算法是进化算法中的一种启发式全局优化算法,具有分布式计算、信息正反馈和启发式搜索的特征,其基本思路为:用蚂蚁的行走路径表示待优化问题的可行解,整个蚂蚁群体的所有路径构成待优化问题的解空间。路径较短的蚂蚁释放的信息素量较多,随着时间的推进,较短的路径上累积的信息素浓度逐渐增高,选择该路径的蚂蚁个数也愈来愈多。
[0056]
传统蚁群算法的收敛速度相对较慢,随机性较大,因此寻求最优解的效率相对较低,在解决优化问题时容易陷入局部最优,从而错过全局最优解。在中央控制器和交换机构成的系统中,由于系统中可能存在多个交换机,且各个交换机存在异构性,因此计算能力、网络带宽等可能都存在差异,使得系统可能处于一个动态分配的过程中。各个交换机在每个时刻承担的负载差异较大,若一部分交换机的性能较差,另一部分的交换机性能较好,那么大量任务流容易集中到性能较好的交换机上执行,而性能较差的交换机可能处于空闲状态。因此,需要根据交换机的性能优势分担中央控制器的压力,实现负载均衡。
[0057]
系统中除了中央控制器、软件交换机,还可以包括硬件交换机,设系统中有n台软件交换机,一共分配m只蚂蚁,m=2n,按每台交换机2只蚂蚁执行搜索任务,每只蚂蚁的初始点为硬件交换机。
[0058]
在获取交换机的资源的使用率后,对蚁群算法的相关参数进行初始化,初始化包括设置算法的迭代次数上限以及初始的信息素浓度,信息素浓度可表示完成任务的效率。将cpu、内存和网络带宽的已使用率,分别记为u
cpu
、u
mem
和u
net
,为综合考虑cpu、内存和网络带宽的性能,将距离调整为已负载能力:
[0059][0060][0061]
其中:和分别表示在已负载能力中cpu、内存、网络带宽所占权重的大小。将φ用于改进传统蚁群算法中的启发因子η,φ=1/η,即,η
ij
=1/φ
ij

[0062]
η
ij
越小,说明任务流选择该交换机的φ
ij
值偏大,即负载已偏大,选择该交换机会使整个系统负载更加不均衡,相反,如果所得出的η
ij
值越大,则对应的φ
ij
值偏小,即负载目前偏小,选择该交换机执行任务将会促进整个系统的负载均衡。所以,该改进可以促使任务流在一些相对空闲的交换机上执行,经过算法多次迭代以后,改进后的算法最终能够实现整体的负载均衡。
[0063]
由于信息素挥发程度ρ对算法搜索性能影响较大,ρ越大,全局搜索能力越差,ρ越小,局部搜索能力越差,收敛速度也越慢。因此,ρ取值采用如下自适应方式进行调整:
[0064][0065]
另外,对信息素更新方式进行改进,使用精英蚂蚁系统,当蚂蚁k完成一次路径搜索后,全局更新方式仍采用标准蚁群优化,而局部更新方式则进行调整。
[0066]
分配到软件交换机sj上的目标任务oi的完成时间为c
ij
,则c
ij
应为硬件交换机到sj的传输时间t
ij
加上oi在sj上的实际执行时间e
ij
再加上从传输到执行前的延迟时间w
ij
,即:
[0067]cij
=t
ij
e
ij
w
ij
[0068]
任务oi的数据量大小记为fi,pj表示软件交换机sj的性能,nj表示软件交换机sj的网络带宽,则:
[0069]eij
=fi/pj,
[0070]
t
ij
=fi/nj[0071]
由于软件交换机并发执行任务,因此系统将所有任务执行完成的时间也就是所有c
ij
中的最大值c
max

[0072]cmax
=max(c
ij
)
[0073]
由于本次优化的总目标是:最小化任务流的完成时间,因此目标即为最小化,即:min c
max

[0074]
此时,蚁周模型为:
[0075][0076]
其中,ck表示蚂蚁k搜索路径的总完成时间,q表示完成一次搜索后路径上遗留的信息素总量,表示第k只蚂蚁在路径上释放的信息素总量。
[0077]
将发现的最优路径记为γ
bs
,对于此路径更新局部信息素时,添加人工释放额外的信息素,以增强正反馈效果。此时,局部更新公式为:
[0078][0079]
其中,δτ
ij
(t)表示蚁群在路径上释放的信息素总量,表示第k只蚂蚁在路径上释放的信息素总量,e是γ
bs
的影响权重因子,表示路径上新增的各个额外信息素,公式如下:
[0080][0081]
其中,c
bs
表示已知最优路径γ
bs
的完成时间。
[0082]
每一个交换机都是一个节点,可根据得到的转移函数计算每只蚂蚁移动到一个节点的概率,如下:
[0083][0084]
其中,表示蚂蚁k在下一时刻访问交换机j的概率,α表示蚂蚁对信息素的敏感程度,β表示蚁群对信息素的敏感程度,表示交换机i和交换机j路径上在t时
刻的信息素浓度,η
ij
表示启发因子,启发因子用于描述交换机j对交换机i上蚂蚁的吸引程度,可表示为η
ij
=1/d
ij
,d
ij
表示交换机j和交换机i间的距离,allowedk表示尚未访问的交换机集合,蚂蚁根据计算得到的概率移动到相应的交换机节点。
[0085]
当蚂蚁移动到新交换机节点,更新其经过路径的信息素,并对禁忌表进行相应的修改,根据信息素的局部更新公式得到子信息浓度,公式如下:
[0086][0087]
其中,δτ
ij
(t)表示蚁群在路径上释放的信息素总量,即子信息素浓度,表示第k只蚂蚁在路径上释放的信息素总量,e是γ
bs
的影响权重因子,表示路径上新增的各个额外信息素。
[0088]
中央控制器汇总各软件交换机确定的子信息素浓度,并根据目标函min c
max
对所有可行路径进行评价,并选择当前最优路径γ
bs
,基于确定的最优路径对所有路径上的信息素进行全局更新。为了确定最优路径,即分配问题的最优解,可以不断递增迭代次数,直到迭代次数达到预先设置的迭代次数上限,获取在最优路径下各交换机上的任务流数量。
[0089]
s13,获取交换机的实时健康系数,将实时健康系数与初始权重结合得到实时健康矩阵。
[0090]
其中,初始权重是基于任务流数量计算得到的,当存在多个交换机时,各交换机依次与其他交换机之间的任务流数量的最大公约数相除,得到初始权重,该初始权重为加权等价多路径的权重配置初始值。可以将得到的各软件交换机的初始权重发送给硬件交换机,硬件交换机中可以包括路径分发模块,可用于确定各软件交换机与中央控制器之间的链路。
[0091]
设定交换机的健康系数为ζ,健康系数主要表示的是各链路的健康情况,当ζ=1,表示链路健康检测正常,当ζ=0,表示链路健康检测异常。中央控制器可通过监控模块监控软件交换机的实时资源的使用率和链路健康,链路健康情况可作为硬件交换机动态自适应调整多路径选择的依据。中央控制器对交换机的进行监测,获取实时健康系数,可以将实时健康系数与初始权重相乘得到实时健康矩阵。
[0092]
s14,将实时健康矩阵与预设健康矩阵比较,根据比较结果调整交换机的负载。
[0093]
通过设置ζi=1得到预设健康矩阵,预设健康矩阵为(1,1,1,

,1),将实时健康矩阵与预设健康矩阵比较,当数值有差异时,控制硬件交换机调整对应链路的健康系数,并调整软件交换机的负载,例如,可以排除健康情况异常的链路对应的软件交换机,减少或去除其的负载,最大化地均衡了软件交换机上的业务处理。若链路出现故障,也可以通过该方式中断该链路上数据的传输,避免数据丢失的风险,确定加权等价多路径的最佳权重配置。
[0094]
本实施例提供的负载均衡方法,获取交换机在本地计算的本地模型的梯度参数,基于梯度参数优化全局模型,并控制交换机基于全局模型对本地模型进行优化,从而计算交换机对应的资源的使用率。基于蚁群算法和得到的交换机的资源的使用率确定最优分配,即交换机上的任务流数量,根据任务流数量确定交换机的权重,设定健康系数,并基于交换机的权重得到实时健康矩阵。通过比较实时健康矩阵和预设健康矩阵实现对交换机的
负载的调整,从而实现交换机的负载均衡,减少服务响应时间,提升用户的使用体验。
[0095]
在一种实施方式中,对应于图1中的s12,还可以包括如下步骤:
[0096]
(1)循环获取交换机基于资源的使用率以及蚁群算法确定的子信息素浓度。
[0097]
设系统中有n台软件交换机,一共分配m只蚂蚁,m=2n,按每台交换机2只蚂蚁执行搜索任务,计算每只蚂蚁移动到下一个交换机节点的概率,蚂蚁根据概率移动到对应的节点,并更新子信息素浓度,为了确定最优路径,需要不断增加迭代次数。
[0098]
(2)对子信息素浓度进行全局更新,得到信息素浓度,并对路径进行优化。
[0099]
获取子信息素浓度,根据子信息浓度进行全局更新,增加迭代次数重复计算,不断优化路径,直到迭代次数达到预先设置的迭代次数上限,确定最优路径。
[0100]
信息素浓度采用如下公式计算得到:
[0101]
τ
ij
(t 1)=(1-ρ)τ
ij
(t) δτ
ij
(t)
[0102]
其中,ρ表示信息素挥发程度,δτ
ij
(t)表示子信息素浓度,τ
ij
(t 1)表示交换机i和交换机j路径上在t 1时刻的信息素浓度。
[0103]
ρ采用如下自适应方式进行调整:
[0104][0105]
(3)基于优化的路径确定交换机上的任务流数量。
[0106]
获取在最优路径下交换机上的任务流数量。
[0107]
在一种实施方式中,对应于图1中的s14,还可以包括如下步骤:
[0108]
(1)检测交换机的路径健康情况,并根据交换机的路径健康情况确定交换机的实时健康系数。
[0109]
中央控制器可以实时监控软件交换机的链路健康状况,并基于设置的健康检测系数确定实时健康系数,设置的健康监测系数为ζ,具体如下:
[0110][0111]
根据实时的链路健康情况,得到各交换机的实时健康系数,可以写为{ζ1,ζ2,ζ3,...,ζn}。
[0112]
(2)将交换机对应的初始权重与实时健康系数相乘,确定实时健康矩阵。
[0113]
交换机的初始权重是通过得到的任务流数量计算得到的,当存在多个交换机时,各交换机依次与其他交换机之间的任务流数量的最大公约数相除,得到初始权重,初始权重可写为{w
′1,w
′2,w
′3,...,w
′n}。初始权重和实施健康系数相乘得到的实时健康矩阵为{ζ1w
′1,ζ2w
′2,ζ3w
′3,...,ζnw
′n},图4为加权等价多路径示意图。
[0114]
在本实施例中提供了一种负载均衡方法,图3是根据本发明实施例的负载均衡方法的流程图,该方法应用于交换机,如图3所示,该流程包括如下步骤:
[0115]
s21,获取数据流特征信息,基于数据流特征信息确定梯度参数,并将梯度参数发送给中央控制器。
[0116]
交换机可以为软件交换机,数据流特征信息可以包括从src到dst的流数据包大小的平均值,从dst到src的流数据包大小的平均值,包最小值,包最大值,包平均值,包传输时
间,握手时间(tcp)等。交换机将数据流特征信息作为数据集,可以将数据集按照预设比例进行划分,例如按照7∶3的比例,分别作为训练数据集和测试数据集,同时尽可能保持数据分布的一致性,避免因数据划分而引入额外的偏差,对最终结果产生影响。
[0117]
中央控制器将联合gru(gated recurrent unit,门控循环单元)任务和初始参数发送至交换机,初始参数可以设置为1。gru神经网络是lstm(long short-term memory,长短期记忆)的一个变体,gru在保持了lstm的效果同时又使结构更加简单,包括更新门和重置门。更新门控制前一时刻的状态信息被带入到当前状态中的程度,值越大前一时刻的状态信息带入越多。重置门控制忽略前一时刻的状态信息的程度,值越小说明忽略得越多。交换机对划分出的训练数据集进行归一化处理,训练数据集归一化之后存在较大的数值,为防止梯度消失,激活函数σ使用修正线性单元(rectified linear unit,relu)。同时,使用relu会使部分神经元为0,造成网络的稀疏性,并且减少参数之间的相互依赖关系,有效地缓解了过拟合问题。relu函数表达式如下所示:
[0118]
relu=max(0,x)
[0119]
为充分利用软件交换机的计算性能,以及缓解中央控制器的性能压力,并减少可避免的数据传输所带来的额外带宽开销。对于cpu、内存和网络带宽的时序预测,将gru与联邦学习相结合,如图2所示。
[0120]
交换机获取中央控制器发送的联合gru任务,开启联合gru任务并初始化系统参数后,在本地根据cpu、内存、网络带宽以及数据流特征信息等本地数据进行计算,计算完成后将得到的梯度参数发送给中央控制器。
[0121]
s22,获取中央控制器发送的全局模型,基于全局模型优化本地模型,并根据本地模型与数据流特征信息计算得到资源的使用率。
[0122]
全局模型是中央控制器基于梯度参数优化得到的,中央控制器接收至少一个交换机发送的梯度参数。在联邦学习中通过分布式训练得到各个局部的梯度参数,再根据各局部梯度参数对全局模型进行优化。中央控制器在收到交换机的梯度参数后,对这些梯度参数进行聚合操作,在聚合的过程中侧重考虑效率、性能等因素。例如,因为系统的异构性,中央控制器有时可能不会等待所有交换机的数据上传,而是选择一个合适的交换机子集作为收集目标。中央控制器基于获取的梯度参数对全局模型进行聚合优化后,将优化后的全局模型发送给参与gru任务的交换机。交换机根据接收到的全局模型更新本地模型,并对本地模型性能进行评估,若性能达到预设情况,即性能足够好时,停止训练,联合建模结束;若性能不足,交换机在本地再次计算梯度参数并发送给中央控制器,直至最终的本地模型性能达到预设情况。中央控制器保存训练好的全局模型,可以通过全局模型计算得到初始参数,并将初始参数发送给交换机,交换机基于初始参数以及训练好的本地模型计算该交换机对应的各资源的使用率,例如cpu、内存、网络带宽等的使用率。
[0123]
s23,基于资源的使用率和蚁群算法确定子信息素浓度,并将子信息素浓度发送给中央控制器,以调整负载。
[0124]
中央控制器获取交换机计算的各自的资源的使用率,采用蚁群算法来确定各交换机上的任务流数量。蚁群算法是一种模拟自然界蚂蚁搜索食物回巢行为的人工智能优化算法,通过蚁群个体间的协作以寻找最优路径。蚁群算法是进化算法中的一种启发式全局优化算法,具有分布式计算、信息正反馈和启发式搜索的特征,其基本思路为:用蚂蚁的行走
路径表示待优化问题的可行解,整个蚂蚁群体的所有路径构成待优化问题的解空间。路径较短的蚂蚁释放的信息素量较多,随着时间的推进,较短的路径上累积的信息素浓度逐渐增高,选择该路径的蚂蚁个数也愈来愈多。
[0125]
传统蚁群算法的收敛速度相对较慢,随机性较大,因此寻求最优解的效率相对较低,在解决优化问题时容易陷入局部最优,从而错过全局最优解。在中央控制器和交换机构成的系统中,由于系统中可能存在多个交换机,且各个交换机存在异构性,因此计算能力、网络带宽等可能都存在差异,使得系统可能处于一个动态分配的过程中。各个交换机在每个时刻承担的负载差异较大,若一部分交换机的性能较差,另一部分的交换机性能较好,那么大量任务流容易集中到性能较好的交换机上执行,而性能较差的交换机可能处于空闲状态。因此,需要根据交换机的性能优势分担中央控制器的压力,实现负载均衡。
[0126]
系统中除了中央控制器、软件交换机,还可以包括硬件交换机,设系统中有n台软件交换机,一共分配m只蚂蚁,m=2n,按每台交换机2只蚂蚁执行搜索任务,每只蚂蚁的初始点为硬件交换机。
[0127]
在获取交换机的资源的使用率后,对蚁群算法的相关参数进行初始化,初始化包括设置算法的迭代次数上限以及初始的信息素浓度,信息素浓度可表示完成任务的效率。将cpu、内存和网络带宽的已使用率,分别记为u
cpu
、u
mem
和u
net
,为综合考虑cpu、内存和网络带宽的性能,将距离调整为已负载能力:
[0128][0129][0130]
其中,和分别表示在已负载能力中cpu、内存、网络带宽所占权重的大小。将φ用于改进传统蚁群算法中的启发因子η,φ=1/η,即,η
ij
=1/φ
ij

[0131]
η
ij
越小,说明任务流选择该交换机的φ
ij
值偏大,即负载已偏大,选择该交换机会使整个系统负载更加不均衡,相反,如果所得出的η
ij
值越大,则对应的φ
ij
值偏小,即负载目前偏小,选择该交换机执行任务将会促进整个系统的负载均衡。所以,该改进可以促使任务流在一些相对空闲的交换机上执行,经过算法多次迭代以后,改进后的算法最终能够实现整体的负载均衡。
[0132]
由于信息素挥发程度ρ对算法搜索性能影响较大,ρ越大,全局搜索能力越差,ρ越小,局部搜索能力越差,收敛速度也越慢。因此,ρ取值采用如下自适应方式进行调整:
[0133][0134]
另外,对信息素更新方式进行改进,使用精英蚂蚁系统,当蚂蚁k完成一次路径搜索后,全局更新方式仍采用标准蚁群优化,而局部更新方式则进行调整。
[0135]
分配到软件交换机sj上的目标任务oi的完成时间为c
ij
,则c
ij
应为硬件交换机到sj的传输时间t
ij
加上oi在sj上的实际执行时间e
ij
再加上从传输到执行前的延迟时间w
ij
,即:
[0136]cij
=t
ij
e
ij
w
ij
[0137]
任务oi的数据量大小记为fi,pj表示软件交换机sj的性能,nj表示软件交换机sj的网络带宽,则:
[0138]eij
=fi/pj,
[0139]
t
ij
=fi/nj[0140]
由于软件交换机并发执行任务,因此系统将所有任务执行完成的时间也就是所有c
ij
中的最大值c
max

[0141]cmax
=max(c
ij
)
[0142]
由于本次优化的总目标是:最小化任务流的完成时间,因此目标即为最小化,即:min c
max

[0143]
此时,蚁周模型为:
[0144][0145]
其中,ck表示蚂蚁k搜索路径的总完成时间,q表示完成一次搜索后路径上遗留的信息素总量,表示第k只蚂蚁在路径上释放的信息素总量。
[0146]
将发现的最优路径记为γ
bs
,对于此路径更新局部信息素时,添加人工释放额外的信息素,以增强正反馈效果。此时,局部更新公式为:
[0147][0148]
其中,δτ
ij
(t)表示蚁群在路径上释放的信息素总量,即子信息素浓度,表示第k只蚂蚁在路径上释放的信息素总量,e是γ
bs
的影响权重因子,表示路径上新增的各个额外信息素,公式如下:
[0149][0150]
其中,c
bs
表示已知最优路径γ
bs
的完成时间。
[0151]
每一个交换机都是一个节点,可根据得到的转移函数计算每只蚂蚁移动到一个节点的概率,如下:
[0152][0153]
其中,表示蚂蚁k在下一时刻访问交换机j的概率,α表示蚂蚁对信息素的敏感程度,β表示蚁群对信息素的敏感程度,表示交换机i和交换机j路径上在t时刻的信息素浓度,η
ij
表示启发因子,启发因子用于描述交换机j对交换机i上蚂蚁的吸引程度,可表示为η
ij
=1/d
ij
,d
ij
表示交换机j和交换机i间的距离,allowedk表示尚未访问的交换机集合,蚂蚁根据计算得到的概率移动到相应的交换机节点。
[0154]
当蚂蚁移动到新交换机节点,更新其经过路径的信息素,并对禁忌表进行相应的修改,根据信息素的局部更新公式得到子信息浓度δτ
ij
(t)。
[0155]
中央控制器汇总各软件交换机确定的子信息素浓度,并根据目标函min c
max
对所有可行路径进行评价,并选择当前最优路径γ
bs
,基于确定的最优路径对所有路径上的信息素进行全局更新。为了确定最优路径,即分配问题的最优解,可以不断递增迭代次数,直到迭代次数达到预先设置的迭代次数上限,获取在最优路径下各交换机上的任务流数量。
[0156]
其中,初始权重是基于任务流数量计算得到的,当存在多个交换机时,各交换机依次与其他交换机之间的任务流数量的最大公约数相除,得到初始权重,该初始权重为加权等价多路径的权重配置初始值。可以将得到的各软件交换机的初始权重发送给硬件交换机,硬件交换机中可以包括路径分发模块,可用于确定各软件交换机与中央控制器之间的链路。
[0157]
设定交换机的健康系数为ζ,健康系数主要表示的是各链路的健康情况,当ζ=1,表示链路健康检测正常,当ζ=0,表示链路健康检测异常。中央控制器可通过监控模块监控软件交换机的实时资源的使用率和链路健康,链路健康情况可作为硬件交换机动态自适应调整多路径选择的依据。中央控制器对交换机的进行监测,获取实时健康系数,可以将实时健康系数与初始权重相乘得到实时健康矩阵。
[0158]
通过设置ζi=1得到预设健康矩阵,预设健康矩阵为(1,1,1,...,1),将实时健康矩阵与预设健康矩阵比较,当数值有差异时,控制硬件交换机调整对应链路的健康系数,并调整软件交换机的负载,例如,可以排除健康情况异常的链路对应的软件交换机,减少或去除其的负载,最大化地均衡了软件交换机上的业务处理。若链路出现故障,也可以通过该方式中断该链路上数据的传输,避免数据丢失的风险。
[0159]
在一种实施方式中,基于资源的使用率和蚁群算法确定子信息素浓度,包括如下步骤:
[0160]
(1)基于蚁群算法分配蚂蚁的搜索任务,基于资源的使用率确定启发因子。
[0161]
系统中除了中央控制器、软件交换机,还可以包括硬件交换机,设系统中有n台软件交换机,一共分配m只蚂蚁,m=2n,按每台交换机2只蚂蚁执行搜索任务,每只蚂蚁的初始点为硬件交换机。
[0162]
在获取交换机的资源的使用率后,对蚁群算法的相关参数进行初始化,初始化包括设置算法的迭代次数上限以及初始的信息素浓度,信息素浓度可表示完成任务的效率。将cpu、内存和网络带宽的已使用率,分别记为u
cpu
、u
mem
和u
net
,为综合考虑cpu、内存和网络带宽的性能,将距离调整为已负载能力:
[0163][0164][0165]
其中:和分别表示在已负载能力中cpu、内存、网络带宽所占权重的大小。将φ用于改进传统蚁群算法中的启发因子η,φ=1/η,即,η
ij
=1/φ
ij

[0166]
η
ij
越小,说明任务流选择该交换机的φ
ij
值偏大,即负载已偏大,选择该交换机会使整个系统负载更加不均衡,相反,如果所得出的η
ij
值越大,则对应的φ
ij
值偏小,即负载目前偏小,选择该交换机执行任务将会促进整个系统的负载均衡。所以,该改进可以促使任务流在一些相对空闲的交换机上执行,经过算法多次迭代以后,改进后的算法最终能够实现整体的负载均衡。
[0167]
(2)根据启发因子计算蚂蚁移动到其他交换机的概率。
[0168]
在一种实施方式中,蚂蚁移动到其他交换机的概率采用如下公式计算:
[0169][0170]
其中,表示蚂蚁k在下一时刻访问交换机j的概率,α表示蚂蚁对信息素的敏感程度,β表示蚁群对信息素的敏感程度,表示交换机i和交换机j路径上在t时刻的信息素浓度,η
ij
表示启发因子,启发因子用于描述交换机j对交换机i上蚂蚁的吸引程度,可表示为η
ij
=1/d
ij
,d
ij
表示交换机j和交换机i间的距离,allowedk表示尚未访问的交换机集合。
[0171]
(3)当蚂蚁移动至其他交换机,根据路径上新增的信息素以及蚁周模型计算子信息素浓度。
[0172]
由于信息素挥发程度ρ对算法搜索性能影响较大,ρ越大,全局搜索能力越差,ρ越小,局部搜索能力越差,收敛速度也越慢。因此,ρ取值采用如下自适应方式进行调整:
[0173][0174]
另外,对信息素更新方式进行改进,使用精英蚂蚁系统,当蚂蚁k完成一次路径搜索后,全局更新方式仍采用标准蚁群优化,而局部更新方式则进行调整。
[0175]
分配到软件交换机sj上的目标任务oi的完成时间为c
ij
,则c
ij
应为硬件交换机到sj的传输时间t
ij
加上oi在sj上的实际执行时间e
ij
再加上从传输到执行前的延迟时间w
ij
,即:
[0176]cij
=t
ij
e
ij
w
ij
[0177]
任务oi的数据量大小记为fi,pj表示软件交换机sj的性能,nj表示软件交换机sj的网络带宽,则:
[0178]eij
=fi/pj,
[0179]
t
ij
=fi/nj[0180]
由于软件交换机并发执行任务,因此系统将所有任务执行完成的时间也就是所有c
ij
中的最大值c
max

[0181]cmax
=max(c
ij
)
[0182]
由于本次优化的总目标是:最小化任务流的完成时间,因此目标即为最小化,即:min c
max

[0183]
此时,蚁周模型为:
[0184][0185]
其中,ck表示蚂蚁k搜索路径的总完成时间,q表示完成一次搜索后路径上遗留的信息素总量,表示第k只蚂蚁在路径上释放的信息素总量。
[0186]
新增的信息素公式如下:
[0187][0188]
其中,c
bs
表示已知最优路径γ
bs
的完成时间。
[0189]
将发现的最优路径记为γ
bs
,对于此路径更新局部信息素时,添加人工释放额外的信息素,以增强正反馈效果。此时,局部更新公式为:
[0190][0191]
其中,δτ
ij
(t)表示蚁群在路径上释放的信息素总量,即子信息素浓度,表示第k只蚂蚁在路径上释放的信息素总量,e是γ
bs
的影响权重因子,表示路径上新增的信息素。
[0192]
在本技术中,设计了基于联邦学习的gru时序性能预测方法,减少了实时训练所导致的额外时延增加,满足了短流对时延敏感的要求。同时,充分利用了软件交换机上高性能的优点,使用联邦学习,缓解了中央控制器的压力,减少了可避免的数据传输。通过预测的方式等价地获知了链路的负载情况。基于优化蚁群算法的分布式加权等价多路径路由方法,使得负载均衡考虑了软件交换机上设备的异构性,采用了更加合理的负载评判方式,并且提高了算法的收敛性,加快了结果的求解速度。通过实时链路健康检测,使得在链路出现故障的第一时间,中断数据的传输,避免了数据丢失的风险。在海量短流数据的场景下,充分利用交换机节点计算性能优异的特点,结合各交换机节点之间cpu、内存和网络的差异,预测出各路径最佳的权重配置,进行对应的加权等价多路径的选择。缩短了整体服务的响应时间,提升了用户使用体验。
[0193]
在本实施例中还提供了一种负载均衡系统,该系统用于实现上述实施例及实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0194]
本实施例提供一种负载均衡系统,如图5所示,包括:
[0195]
中央控制器,中央控制器用于执行负载均衡方法;
[0196]
至少一个交换机,交换机与所述中央控制器连接,用于执行负载均衡方法。
[0197]
在一种实施方式中,系统包括软件交换机、硬件交换机和中央控制器,该系统如图6所示。
[0198]
硬件交换机包括路径分发模块,可基于权重配置进行短流的多路径选择。同时,根据中央控制器实时监控后,发送的链路健康检测结果,动态自适应的调整多路径选择。
[0199]
中央控制器包括监控模块、性能预测模块和路径训练模块。监控模块用于监控检测各个软件交换机节点的实时网络利用率和链路健康,作为硬件交换机动态自适应调整多路径选择的依据。性能预测模块可以协同软件交换机,联邦式训练出cpu、内存和网络带宽的使用率的预测模型。路径训练模块可以协同软件交换机,分布式预测出加权等价多路径的最佳权重配置。
[0200]
软件交换机包括监控模块、性能预测模块和路径训练模块。监控模块用于监控并记录软件交换机本地的资源的使用情况,本地资源包括cpu、内存、网络带宽等。同时还可以记录中央控制器发送的本地网络利用率和链路健康情况,以此作为性能预测模块的数据来源。性能预测模块可以协调中央控制器,基于联邦学习计算资源的使用率。路径训练模块,可以协调中央控制器分布式计算被分配的路径搜索值结果。
[0201]
本实施例中的负载均衡系统是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
[0202]
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
[0203]
本发明实施例还提供一种电子设备,具有上述图5所示的负载均衡系统。
[0204]
请参阅图7,图7是本发明实施例提供的一种电子设备的结构示意图,如图7所示,该电子设备可以包括:至少一个处理器601,例如cpu(central processing unit,中央处理器),至少一个通信接口603,存储器604,至少一个通信总线602。其中,通信总线602用于实现这些组件之间的连接通信。其中,通信接口603可以包括显示屏(display)、键盘(keyboard),可选通信接口603还可以包括标准的有线接口、无线接口。存储器604可以是高速ram存储器(random access memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器604可选的还可以是至少一个位于远离前述处理器601的存储装置。其中处理器601可以结合图5所描述的系统,存储器604中存储应用程序,且处理器601调用存储器604中存储的程序代码,以用于执行上述任一方法步骤。
[0205]
其中,通信总线602可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。通信总线602可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0206]
其中,存储器604可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:ram);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:hdd)或固态硬盘(英文:solid-state drive,缩写:ssd);存储器604还可以包括上述种类的存储器的组合。
[0207]
其中,处理器601可以是中央处理器(英文:central processing unit,缩写:cpu),网络处理器(英文:network processor,缩写:np)或者cpu和np的组合。
[0208]
其中,处理器601还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:asic),可编程逻辑器件(英文:programmable logic device,缩写:pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:fpga),通用阵列逻辑(英文:generic array logic,缩写:gal)或其任意组合。
[0209]
可选地,存储器604还用于存储程序指令。处理器601可以调用程序指令,实现如本技术实施例中所示的负载均衡方法。
[0210]
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的负载均衡方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
[0211]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献