基于遗传算法的服务器负载均衡方法技术

技术编号:22081331 阅读:52 留言:0更新日期:2019-09-12 16:08
本发明专利技术公开了一种基于遗传算法的服务器负载均衡方法,首先判断系统负载高低,若较低则采用最小连接数法进行请求分配,否则采用判断当前是否存在基于遗传算法所得到的请求分配方案,如果存在则直接使用,否则基于遗传算法获取请求分配方案,将请求分配方案作为遗传算法种群中的染色体,基于平均响应时间和当前连接数计算染色体的适应度值,然后进行染色体的选择、交叉和变异,其中交叉和变异针对本发明专利技术中染色体的约束进行设计,在终代种群中选择选择适应度最高的染色体,将其所代表的连接请求分配方案作为执行的连接请求分配方案。采用本发明专利技术可以使得负载均衡的效果更好,系统响应时间更短,请求处理效率更高。

Server Load Balancing Method Based on Genetic Algorithms

【技术实现步骤摘要】
基于遗传算法的服务器负载均衡方法
本专利技术属于服务器负载均衡
,更为具体地讲,涉及一种基于遗传算法的服务器负载均衡方法。
技术介绍
为了适应当今互联网的技术浪潮,众多中小型企业纷纷搭建自身网站或平台与互联网进行接轨。考虑到成本的控制,采用多台性能较低成本也更低的服务器构建服务器集群体系达到较高性能和高可靠性是较好的方法。而在服务器集群当中,负载均衡算法如何将用户请求分发给后端服务器集群使得整个集群系统中各服务器节点的计算能力充分发挥,整个系统表现的响应速度更快,处理请求效率更高则是其中的核心问题。随着对集群系统的应用,经典的负载均衡算法已经不能完全满足系统本身以及开发者对其负载均衡效果的要求。遗传算法在服务器负载均衡领域的运用与探索主要分为两个方面。一方面是在遗传算法的适应度设计上许多学者进行了不同方向的探索和设计,有将系统的CPU指标及内存利用率等指标作为参数,有将投资预测模型引进到适应度函数的权重计算当中,有设计适应度变换准则等等各种方法来设计一个更能够代表服务器节点负载程度的适应度函数。另一方面是在遗传算法的进化操作当中进行不同的改进,或设计动态的交叉率或变异率,或设计本文档来自技高网...

【技术保护点】
1.一种于遗传算法的服务器负载均衡方法,其特征在于,包括以下步骤:S1:当连接请求到达时,获取M个可用服务器的当前活跃连接数activei,i=1,2,…,M;如果所有服务器的当前活跃连接数之和小于服务器个数的β倍,即

【技术特征摘要】
1.一种于遗传算法的服务器负载均衡方法,其特征在于,包括以下步骤:S1:当连接请求到达时,获取M个可用服务器的当前活跃连接数activei,i=1,2,…,M;如果所有服务器的当前活跃连接数之和小于服务器个数的β倍,即β的值根据实际需要确定,则认为当前系统的负载较低,进入步骤S2,否则进入步骤S3;S2:采用最小连接数法进行请求分配;如果当前存在基于遗传算法的请求分配方案,则将该请求分配方案清空,否则不作任何操作;S3:判断当前是否存在基于遗传算法所得到的请求分配方案,如果存在,进入步骤S4,否则进入步骤S5;S4:采用当前已有的基于遗传算法所得到的请求分配方案进行请求分配;S5:基于改进遗传算法获取请求分配方案,包括以下步骤:S5.1:将请求分配方案作为遗传算法种群中的染色体X=(x1,x2,…,xM),xi表示第i个可用服务器的连接分配数量,需满足N表示当前连接请求的数量;对种群进行初始化,将种群数量记为Q;S5.2:采用以下方法计算当前种群中每个染色体的适应度值:S5.2.1:获取各个服务器当前时刻的总连接请求数量total和平均响应时间average,以及前一时刻的总连接请求数量total′和平均响应时间average′,计算得到当前时刻各个服务器的预计请求响应时间ti:S5.2.2:采用以下公式计算得到染色体X=(x1,x2,…,xM)所代表的连接请求分配方案中各个服务器的执行时间负载Ti:Ti=exp(ti×(xi+activei))S5.2.3:采用以下公式计算总执行时间负载TT:S5.2.4:根据以下公式计算执行时间负载标准差BL:其中,表示执行时间负载的平均值,即S5.2.5:染色体X对应的适应度值f(X)计算公式如下:适应度值越高,染色体越优;S5.3:判断是否达到预设的最大迭代次数kmax,如果达到,则迭代结束,进入步骤S5.4,否则进入步骤S5.5;S5.4:从当前种群中选择适应度最高的染色体,将其所代表的连接请求分配方案作为执行的连接请求分配方案;S5.5:根据各条染色体的适应度值从当前种群的染色体选择2条染色体;S5.6:对步骤S5.5所选择的染色体进行交叉操作,具体方法如下:S5.6.1:初始化双点交叉次数d=1;S5.6.2:在步骤S5.5所选择的两条父代染色体当中,在其中一条父代染色体中随机选择两个基因在另一条父代染色体当中搜索两个基因令如果能够找到,则固定四个基因的位置,其余基因按照顺序依次进行交换,产生两条新染色体,如果不能找到,则交叉失败;S5.6.3:判断双点交叉是否成功,如果成功,交叉操作结束,否则进入步骤S5.6.4;S5.6.4:判断是否d<D,D表示双点交叉最大执行次数,如果是,则进入步骤S5.6.5,否则进入步骤S5.6.6;S5.6.5:令d=d+1,返回步骤S5.6.2;S5.6.6:对步骤S5.5所选择的两条父代染色体分别进行自交叉操作,具体方法如下:在[0,M/2]随机选择一个整数作为自交叉次数,然后从父代染色体中随机选中两个基因进行数值交换,重复这个过程,直到交换次数达到自交叉次数,则自交叉完成;S5.7:对步骤S5.6得到的染色体进行变异操作,具体方法如下:在预设的范围[0,α]之间随机选择一个整数作为变异步长w,然后随机选出染色体X=(x1,x2,…,xM)的两个基因xi和xj,判断是否满足xi-w≥0,如果是,则令xi=xi-w,xj=xj+w,否则进一步判断是否满足xj-w≥0,如果是,则令xi=xi+w,xj=xj-w,否则重新进行变异步长选择,重新进行变异操作;S5.8:判断下一代种群中染色体数量是否达到Q,如果没有,则返回步骤S5.5,否则返回步骤S5.2。2.根据权利要求1所述的服务器负载均衡方法,...

【专利技术属性】
技术研发人员:邹见效林晓雯于力徐红兵
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1