CN110225096A - 基于遗传算法的服务器负载均衡方法 - Google Patents
基于遗传算法的服务器负载均衡方法 Download PDFInfo
- Publication number
- CN110225096A CN110225096A CN201910418912.3A CN201910418912A CN110225096A CN 110225096 A CN110225096 A CN 110225096A CN 201910418912 A CN201910418912 A CN 201910418912A CN 110225096 A CN110225096 A CN 110225096A
- Authority
- CN
- China
- Prior art keywords
- chromosome
- chromosomes
- population
- fitness
- crossing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000002068 genetic effect Effects 0.000 title claims abstract description 56
- 210000000349 chromosome Anatomy 0.000 claims abstract description 203
- 230000004044 response Effects 0.000 claims abstract description 36
- 230000035772 mutation Effects 0.000 claims description 32
- 108090000623 proteins and genes Proteins 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000002922 simulated annealing Methods 0.000 claims description 6
- 238000000137 annealing Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 8
- 238000012795 verification Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000010187 selection method Methods 0.000 description 5
- 101150076211 TH gene Proteins 0.000 description 4
- 230000002759 chromosomal effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 101150073444 rd gene Proteins 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 101150077543 st gene Proteins 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Physiology (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Genetics & Genomics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于遗传算法的服务器负载均衡方法,首先判断系统负载高低,若较低则采用最小连接数法进行请求分配,否则采用判断当前是否存在基于遗传算法所得到的请求分配方案,如果存在则直接使用,否则基于遗传算法获取请求分配方案,将请求分配方案作为遗传算法种群中的染色体,基于平均响应时间和当前连接数计算染色体的适应度值,然后进行染色体的选择、交叉和变异,其中交叉和变异针对本发明中染色体的约束进行设计,在终代种群中选择选择适应度最高的染色体,将其所代表的连接请求分配方案作为执行的连接请求分配方案。采用本发明可以使得负载均衡的效果更好,系统响应时间更短,请求处理效率更高。
Description
技术领域
本发明属于服务器负载均衡技术领域,更为具体地讲,涉及一种基于遗传算法的服务器负载均衡方法。
背景技术
为了适应当今互联网的技术浪潮,众多中小型企业纷纷搭建自身网站或平台与互联网进行接轨。考虑到成本的控制,采用多台性能较低成本也更低的服务器构建服务器集群体系达到较高性能和高可靠性是较好的方法。而在服务器集群当中,负载均衡算法如何将用户请求分发给后端服务器集群使得整个集群系统中各服务器节点的计算能力充分发挥,整个系统表现的响应速度更快,处理请求效率更高则是其中的核心问题。
随着对集群系统的应用,经典的负载均衡算法已经不能完全满足系统本身以及开发者对其负载均衡效果的要求。遗传算法在服务器负载均衡领域的运用与探索主要分为两个方面。一方面是在遗传算法的适应度设计上许多学者进行了不同方向的探索和设计,有将系统的CPU指标及内存利用率等指标作为参数,有将投资预测模型引进到适应度函数的权重计算当中,有设计适应度变换准则等等各种方法来设计一个更能够代表服务器节点负载程度的适应度函数。另一方面是在遗传算法的进化操作当中进行不同的改进,或设计动态的交叉率或变异率,或设计独特的交叉变异操作来更好的适应种群进化过程当中的不同时期的需求。这些改进都在不同方面提高了遗传算法的应用效果,但也都存在不同方面的不足之处。因此在遗传算法的运用上值得继续进行探索研究。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于遗传算法的服务器负载均衡方法,使得负载均衡的效果更好,系统响应时间更短,请求处理效率更高。
为实现上述发明目的,本发明基于遗传算法的服务器负载均衡方法包括以下步骤:
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。
本发明基于遗传算法的服务器负载均衡方法,首先判断系统负载高低,若较低则采用最小连接数法进行请求分配,否则采用判断当前是否存在基于遗传算法所得到的请求分配方案,如果存在则直接使用,否则基于遗传算法获取请求分配方案,将请求分配方案作为遗传算法种群中的染色体,基于平均响应时间和当前连接数计算染色体的适应度值,然后进行染色体的选择、交叉和变异,其中交叉和变异针对本发明中染色体的约束进行设计,在终代种群中选择选择适应度最高的染色体,将其所代表的连接请求分配方案作为执行的连接请求分配方案。
本发明将遗传算法运用在服务器集群负载均衡领域,并对遗传算法容易早熟,陷入局部收敛的特点进行了改进,可以一定程度上获得更优解,使得负载均衡的效果更好,系统响应时间更短,请求处理效率更高。
附图说明
图1是本发明基于遗传算法的服务器负载均衡方法的具体实施方式流程图;
图2是本发明中基于遗传算法进行请求分配的具体实施方式流程图;
图3是本发明中适应度值计算的流程图;
图4是本发明中染色体交叉操作流程图;
图5是本实施例中染色体双点交叉示例图;
图6是本实施例中染色体自交叉示例图;
图7是本实施例中染色体变异示例图;
图8是本次实验验证中本发明与两种对比方法在不同并发线程数下的响应时间对比表
图9是本次实验验证中本发明与两种对比方法在不同并发线程数下的吞吐量对比表;
图10是本次实验验证中本发明与两种对比方法在不同并发线程数下的偏差率对比表。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
图1是本发明基于遗传算法的服务器负载均衡方法的具体实施方式流程图。如图1所示,本发明基于遗传算法的服务器负载均衡方法的具体步骤包括:
S101:负载高低判定:
当连接请求到达时,获取M个可用服务器的当前活跃连接数activei,i=1,2,…,M。如果所有服务器的当前活跃连接数之和小于服务器个数的β倍,即β的值根据实际需要确定,则认为当前系统的负载较低,进入步骤S102,否则进入步骤S103。
例如,当服务器有4个可用服务器,即M=4,每个可用服务器上的当前活跃连接数分别为5,6,7,8,其和为26,设置参数β=3。那么此时26-4*3=14>0,因此进入步骤S103。
S102:采用最小连接数法进行请求分配:
在本发明中,当负载较低时,为了降低计算复杂度,节约资源,直接采用最小连接数法进行请求分配。同时需要清空可能存在的原有改进遗传算法的请求分配方案。当系统是从高并发请求数量下降至低并发请求数量时,先前使用的改进遗传算法分配方案可能未分配完,因此需要清空,以免影响下一次重新计算改进遗传算法的分配方案。也就是说,如果当前存在基于改进遗传算法的请求分配方案,则将该请求分配方案清空,否则不作任何操作。
最小连接数算法是负载均衡算法的一个经典算法,指的是通过判断各服务器的当前活跃连接数来进行请求分配,将请求分配给连接数最少的那个服务器。也就是说,假设4个可用服务器的当前活跃连接数分别为1,2,3,4,则将新的连接请求分配给连接数为1的服务器。
S103:判断当前是否存在基于遗传算法所得到的请求分配方案,如果存在,进入步骤S104,否则进入步骤S105。
S104:采用现有请求分配方案:
采用当前已有的基于遗传算法所得到的请求分配方案进行请求分配。
S105:基于遗传算法进行请求分配:
在本发明中,当负载较高时,为了使服务器负载更加均衡,基于改进遗传算法获取请求分配方案。图2是本发明中基于遗传算法进行请求分配的具体实施方式流程图。如图2所示,本发明中基于遗传算法进行请求分配的具体步骤包括:
S201:初始化种群:
将请求分配方案作为遗传算法种群中的染色体X=(x1,x2,…,xM),xi表示第i个可用服务器的连接分配数量,需要满足N表示当前连接请求的数量,即各个服务器分配的连接请求个数之和等于待分配连接请求数量。对种群进行初始化,将种群数量记为Q。
种群的初始化一般是采用随机生成的方式,在解空间的全局范围内产生随机解,进行全局搜索。为了使初始种群中染色体分布更加合理,本实施例中采用随机生成+两条标杆染色体的方式初始化种群,也就是说,初始种群中的两条标杆染色体按照特定方式生成,其余Q-2条染色体采用随机方式生成。
本实施例中的两条标杆染色体分别是“硬均衡”染色体和“软均衡”染色体。“硬均衡”染色体指的是根据待分配的请求数N和可用服务实例个数M求平均值,根据平均值将请求均匀的分配给每个服务器,若平均值不为整数,取整数部分先分配,再根据剩余待分配请求个数按顺序分配直达所有请求分配完成为止。也就是说,“硬均衡”染色体X′=(x′1,x′2,…,x′M)中,其中i′=1,2,…,M-1,表示向下取整,
“软均衡”染色体是在“硬均衡”染色体的基础上根据各个服务实例的预计请求响应时间进行分配方案微调所得到的。其调整方案按如下步骤进行:
(1)获取各个服务器当前时刻的总连接请求数量total和平均响应时间average,以及前一时刻的总连接请求数量total′和平均响应时间average′,计算得到当前时刻各个服务器的预计请求响应时间ti:
(2)按照预计请求响应时间的大小对服务器进行排序,将序号为h和M-H+1的服务器作为一组,h=1,2,…,H,当M为奇数,那么还有一个序号为H+1的服务器不能和其他服务器作为一组,则将序号为H+1的服务器单独作为一组。
(3)对于每组服务器采用以下方式对其在“硬均衡”染色体X′=(x′1,x′2,…,x′M)中的请求分配值进行调整:
记此组服务器中两个服务器在“硬均衡”染色体X′=(x′1,x′2,…,x′M)中的连接分配数量分别为x′a、x′b,预计请求响应时间分别为ta、tb,且ta<tb,搜索满足公式(x′a+λ)tb-(x′b-λ)ta≥0的最小的正整数λ,令x″a=x′a+λ,x″b=x′a-λ;
显然当M为奇数时,预计请求响应时间排序后排在中间的服务器不会进行调整。即当M为奇数,则令x″H+1=x′H+1。
调整后的染色体X″=(x″1,x″2,…,x″M)即作为“软均衡”染色体。
假设4个可用服务器,连接请求数量为40,则“硬均衡”染色体为[10,10,10,10],然后调整得到“软均衡”染色体。假设4个服务器的预计请求响应时间分别是[0.1,0.2,0.3,0.4],排序之后仍然是[0.1,0.2,0.3,0.4],那么1,4号服务器为一组,2,3号服务器为一组。以1,4号服务器为例,需要搜索满足公式(10+λ)0.1-(10-λ)0.4≥0的最小的正整数λ,即λ=6。同理得到2,3号服务器对应的λ=2,那么调整后的“软均衡”染色体为[16,12,8,4]。
S202:计算各染色体的适应度值:
本发明通过计算短期内服务器的平均响应时间作为预计响应时间,结合当前连接数进行适应度的评估,从而得到每个染色体的适应度值。图3是本发明中适应度值计算的流程图。如图3所示,本发明中适应度值计算的具体步骤包括:
S301:计算预计请求响应时间:
获取各个服务器当前时刻的总连接请求数量total和平均响应时间average,以及前一时刻的总连接请求数量total′和平均响应时间average′,计算得到当前时刻各个服务器的预计请求响应时间ti:
S302:计算执行时间负载:
采用以下公式计算得到染色体X=(x1,x2,…,xM)所代表的连接请求分配方案中各个服务器的执行时间负载Ti:
Ti=exp(ti×(xi+activei))
S303:计算总执行时间负载:
总执行时间负载TT表示染色体分配方案的所有请求执行时间负载,其计算公式如下:
S304:计算执行时间负载标准差:
总执行时间负载是用来衡量请求分配方案所代表的服务实例负载大小的,而在负载均衡领域,除了要使总负载量更小之外,还需要格外关注各服务器之间的负载量差别,因此,还需要根据以下公式计算执行时间负载标准差BL:
其中,表示执行时间负载的平均值,即
S305:计算适应度值:
本发明中,综合了总执行时间负载和执行时间负载标准差两个度量因素的染色体X对应的适应度值f(X)计算公式如下:
当染色体所代表的连接请求分配方案的总执行时间负载越小则适应度越高,执行时间负载标准差越小则服务实例之间的负载越均衡,适应度也越高,染色体越优。
S203:判断是否达到预设的最大迭代次数kmax,如果达到,则迭代结束,进入步骤S204,否则进入步骤S205。
本实施例中,在进行迭代结束判断时,还引入了收敛判定次数kc,当最优染色体的适应度在连续kc次迭代中保持不变,则迭代结束。
S204:确定连接请求分配方案:
从当前种群中选择适应度最高的染色体,将其所代表的连接请求分配方案作为执行的连接请求分配方案。
S205:染色体选择:
根据各条染色体的适应度值从当前种群的染色体选择2条染色体。
本实施例中,采用染色体多模式选择方法来选出染色体,以便进行后续交叉、变异操作从而使种群更新迭代。本实施例中设计的染色体多模式选择方法是采用多种方式结合进行染色体的挑选,将选择操作分为三个部分组成,分别是精英保留策略、轮盘赌选择方式以及采用模拟退火思想的锦标赛选择方式,增加了适应度低的染色体被选中的概率,在一定程度上防止算法早熟,从而使算法搜索到适应度更高的解。本实施例中染色体多模式选择方法的具体方法如下:
首先采用精英保留策略,从当前种群中选择A个适应度值最大的染色体,不需要进行交叉、变异,直接加入下一代种群。A的值根据需要确定。然后采用轮盘赌方式或基于模拟退火思想的锦标赛选择方式选择需要进行交叉、变异的Q-A染色体。轮盘赌方式是遗传算法中一种常用的染色体选择方式,其具体过程在此不再赘述。基于模拟退火思想的锦标赛选择方式是采用小组竞赛的方式,在种群中随机选择部分染色体构成竞赛小组,其中适应度最高的染色体被选中,对小组当中剩余的染色体以一定的概率进行选择。这个概率Y(X)根据每条染色体的适应度与当前种群最优染色体的适应度差距以及当前的迭代次数进行计算,计算公式如下:
其中,fmax代表种群中最优染色体的适应度大小,Ck表示随着当前迭代次数k的增加而变小的温度退火系数,其值按以下公式进行计算。
kmax表示遗传算法的最大迭代次数,Ck-1表示第k-1次迭代时的温度退火系数,温度退火系数的初始值C0根据实际需要设置。
当迭代次数k逐渐变大时参数Ck逐渐变小,因此越到遗传算法后期竞赛小组中其他染色体被选中的概率越小。在同一次种群迭代当中,染色体适应度与最佳染色体的差距越小被选中的机会越大。
采用轮盘赌方式或基于模拟退火思想的锦标赛选择方式所选择的染色体数量可以根据实际需要确定,例如本实施例中设置采用精英保留策略选择一个最优染色体直接加入下一代种群,采用轮盘赌方式选择后进行交叉变异生成2Q/3条染色体,采用基于模拟退火思想的锦标赛选择方式选择后进行交叉变异生成Q/3-1条染色体。
S206:染色体交叉:
接下来需要对步骤S205所选择的染色体进行交叉操作。
由于本发明中各个染色体X=(x1,x2,…,xM)需要满足的限制条件,为了适应此需要,本发明对染色体交叉操作进行了设计,在进行交叉操作时,先采用双点交叉方式,如果双点交叉不成功,再采用自交叉方式。图4是本发明中染色体交叉操作流程图。如图4所示,本发明中染色体交叉操作的具体步骤包括:
S401:初始化双点交叉次数d=1。
S402:双点交叉:
在步骤S205所选择的两条父代染色体当中,在其中一条父代染色体中随机选择两个基因在另一条父代染色体当中搜索两个基因如果能够找到,则固定四个基因的位置,其余基因按照顺序依次进行数值交换,产生两条新染色体,如果不能找到,则交叉失败。基因交换的具体过程可以描述为:
1)令i=1,j=1。
2)判断是否i=a或b,如果是,进入步骤3),否则进入步骤4)。
3)判断是否i<M,如果是令i=i+1,返回步骤2),否则交换结束。
4)判断是否j=c或d,如果是,进入步骤5),否则进入步骤6)。
5)令j=j+1,返回步骤4)。
6)令
7)判断是否i<M,如果是令i=i+1,j=j+1,返回步骤2),否则交换结束。
图5是本实施例中染色体双点交叉示例图。如图5所示,染色体长度为7,即有7个可用服务器,当前连接请求的数量为35,从父染色体1中随机选择第3个基因(值为9)和第7个基因(值为1),那么基因之和为10,在父染色体2中搜索得到第1个基因(值为7)和第2个基因(值为3)之和为10,那么固定这4个基因的位置,其余基因按照顺序依次进行数值交换,即父染色体1中的第1个基因与父染色体2中的第3个基因进行数值交换,父染色体1中的第2个基因与父染色体2中的第4个基因进行数值交换,依此类推,完成两条染色体的双点交叉操作。
S403:判断双点交叉是否成功,如果成功,交叉操作结束,否则进入步骤S404。
S404:判断是否d<D,D表示双点交叉最大执行次数,如果是,则进入步骤S405,否则进入步骤S406。
因为交叉方式可能存在失败的情况,因为在一条染色体当中存在的基因组合之和可能在另一条染色体当中不存在和与之相等的两个基因。但基因组合本就是随机选出的,具有较大随机性,因此,进行D次双点交叉过程,只要有任意一次成功即可。若是D次均失败,则进入备用的自交叉操作。D的值可以根据实际需要设置,本实施例中设置D=3。
S405:令d=d+1,返回步骤S402。
S406:自交叉:
对步骤S205所选择的两条父代染色体分别进行自交叉操作。自交叉指的是每条染色体将自身部分基因进行位置交换,这种交换方式保证可行,满足所有基因之和不变的条件约束。具体方法如下:
由于自交叉的次数过多可能相当于无用功,因此自交叉的大小不超过染色体长度的一半,故在[0,M/2]随机选择一个整数作为自交叉次数,然后从父代染色体中随机选中两个基因进行数值交换,重复这个过程,直到交换次数达到自交叉次数,则自交叉完成,交叉操作结束。
图6是本实施例中染色体自交叉示例图。如图6所示,从染色体中随机选择第3个基因和第5个基因,将其进行数值交换。
无论是自交叉或是双点交叉,其结果有可能是子代染色体反倒比父代染色体适应度更差的情况。为了促使种群的进化更有方向性,使种群更容易获得高适应度的染色体,将抽检验收中的接受概率思想引入到交叉操作当中,使交叉后的新染色体在适应度越高时越容易被接受。将接受概率的思想引入到交叉操作当中,加入适应度比较环节,以一定接受概率来接受适应度较小的新染色体。这可以使得交叉操作的结果具有趋向适应度更好的趋势,帮助种群搜索到更优解。
在交叉操作生成子代染色体之后,对比父子代染色体的适应度,判断采用何种方式接受子代染色体。由于本发明中交叉操作有双点交叉和自交叉两种方式,因此接收子代染色体时也分为两种情况进行讨论。
·双点交叉
当子代染色体采用双点交叉生成时,如果两条子代染色体的适应度均比两条父代染色体的适应度更优,则接受这两条子代染色体,进入变异操作,即步骤S207;否则采用以下方式计算子代染色体的接收概率R:
其中,ε为常量参数,分别为两条父代染色体的适应度值, 分别为两条子代染色体的适应度值,exp表示以自然常数e为底的指数函数。
生成0到1之间的随机数random,若random≤R则两条子代染色体被接受,进入变异操作,即步骤S207;否则两条子代染色体不被接受,返回步骤S205重新进行染色体选择。
·自交叉
当子代染色体采用自交叉生成时,如果子代染色体的适应度比父代染色体的适应度更优,则接受这条子代染色体,进入变异操作,即步骤S207;否则采用以下方式计算子代染色体的接收概率R:
R=exp[-ε(fparent-fchildren)]
其中,fparent、fchildren分别为父代染色体和子代染色体的适应度值。
生成0到1之间的随机数random,若random≤R则子代染色体被接受,进入变异操作,即步骤S207;否则子代染色体不被接受,返回步骤S205重新进行染色体选择。
S207:染色体变异:
对步骤S206得到的染色体进行变异操作。同样地,本发明中染色体变异也需要满足的限制条件,为了适应此需要,本发明设计了不定步长的随机双点变异操作。首先在预设的范围[0,α]之间随机选择一个整数作为变异步长w,α表示预设的变异基因分配的请求数变化大小参数,该参数通常根据待分配请求总数的大小选取,一般选择较小的整数,以免变异程度过大不利于局部搜索。然后随机选出染色体X=(x1,x2,…,xM)的两个基因xi和xj,将两个基因分别做+w和-w的操作进行变异,这样的变异操作使得染色体保持基因之和满足待分配请求总数的约束。需要注意的是,在进行变异之前需要首先判断变异操作是否会令基因出现小于0的情况。即变异操作的具体方法为:首先判断是否满足xi-w≥0,如果是,则令xi=xi-w,xj=xj+w,否则进一步判断是否满足xj-w≥0,如果是,则令xi=xi+w,xj=xj-w,否则缩小变异步长,重新进行变异操作。
图7是本实施例中染色体变异示例图。如图7所示,设置变异步长w=1,选择第3个基因和第5个基因,令x3=6-1=5,x5=4+1=5。
在变异操作中还有一个非常关键的因素是变异率,一般而言变异率不会太大,通常取值在0.01到0.1之间。考虑到在遗传算法初期需要更好的维护种群多样性进行最优解的搜索,而在种群进化后期则是保证收敛速度同时进行局部搜索,本实施例优选使用基于非线性惯性权重的动态变异率,即在算法初期变异率较大,随着迭代的进行变异率降低,在进化后期用较小的变异率帮助算法进行局部搜索的同时较小变异率大大降低破坏成型优良基因的可能性。本实施例中变异率pm采用以下公式。
其中,kmax和k分别表示种群最大迭代次数和当前迭代次数,pmstart和pmend则分别表示预设的变异率的初始值和最终值,按照这个公式,变异率pm的值会逐渐从变异率的初始值过渡到变异率的最终值。
S208:判断下一代种群中染色体数量是否达到Q,如果没有,则返回步骤S205,否则返回步骤S202。
为了更好地说明本发明的技术效果,构建了一个小型服务器集群对本发明进行实验验证。本次实验验证采用采用3台服务器构成集群,1台服务器作为负载均衡器进行请求转发分配,1台服务器作为测试用户机通过模拟多个用户同时访问系统进行测试。实验验证时将本发明的服务器负载均衡方法与基于标准遗传算法的服务器负载均衡方法(记为GA)、基于加权最小响应时间算法的服务器负载均衡方法(记为WRT)进行对比。表1是本次实验验证中本发明中遗传算法以及标准遗传算法的参数配置表。
参数 | 标准遗传算法 | 本发明遗传算法 |
种群大小Q | 60 | 60 |
最大迭代次数k<sub>max</sub> | 150 | 150 |
分配请求数N | 100 | 100 |
交叉率pc | 0.8 | 0.8 |
变异率pm | 0.1 | - |
变异率初始值pm<sub>start</sub> | - | 0.1 |
变异率终止值pm<sub>end</sub> | - | 0.01 |
收敛判定次数k<sub>c</sub> | - | 40 |
交叉操作概率接受参数ε | - | 5 |
变异操作变动大小参数α | - | 3 |
启用算法的连接倍数β | 3 | 3 |
表1
图8是本次实验验证中本发明与两种对比方法在不同并发线程数下的响应时间对比表。图9是本次实验验证中本发明与两种对比方法在不同并发线程数下的吞吐量对比表。图10是本次实验验证中本发明与两种对比方法在不同并发线程数下的偏差率对比表。如图8至图10所示,从响应时间、吞吐量以及偏差率对比变化可以看出,并发数较低时三种方法的效果非常接近,而较高并发下本发明的响应时间更短、吞吐量更高、且偏差率更小,表明系统的负载均衡效果更好,更加充分发挥集群的计算能力。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (5)
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所述的服务器负载均衡方法,其特征在于,所述步骤S5.1中,采用以下方法进行种群初始化:随机生成Q-2条染色体,然后生成一条染色体X′=(x′1,x′2,…,x′M),其中 表示向下取整,然后采用以下方法对染色体X′=(x′1,x′2,…,x′M)进行调整,得到另一条染色体X″=(x″1,x″2,…,x″M):
(1)获取各个服务器当前时刻的总连接请求数量total和平均响应时间average,以及前一时刻的总连接请求数量total′和平均响应时间average′,计算得到当前时刻各个服务器的预计请求响应时间ti:
(2)按照预计请求响应时间的大小对服务器进行排序,将序号为h和M-H+1的服务器作为一组,h=1,2,…,H,当M为奇数,则将序号为K+1的服务器作为一组;
(3)对于每组服务器采用以下方式对其在染色体X′=(x′1,x′2,…,x′M)中的请求分配值进行调整:
记此组服务器中两个服务器在染色体X′=(x′1,x′2,…,x′M)中的连接分配数量分别为x′a、x′b,预计请求响应时间分别为ta、tb,且ta<tb,搜索满足公式(x′a+λ)tb-(x′b-λ)ta≥0的最小的正整数λ,令x″a=x′a+λ,x″b=x′b-λ;
当M为奇数,则令x″H+1=x′H+1;从而得到另一条染色体X″=(x″1,x″2,…,x″M)。
3.根据权利要求1所述的服务器负载均衡方法,其特征在于,所述步骤S5.1中选择操作采用以下方式:
首先采用精英保留策略,从当前种群中选择A个适应度值最大的染色体,不需要进行交叉、变异,直接加入下一代种群;然后采用轮盘赌方式或基于模拟退火思想的锦标赛选择方式选择需要进行交叉、变异的Q-A染色体,其中基于模拟退火思想的锦标赛选择方式是采用小组竞赛的方式,在种群中随机选择部分染色体构成竞赛小组,其中适应度最高的染色体被选中,对小组当中剩余的染色体以一定的概率Y(X)进行选择;概率Y(X)的计算公式如下:
其中,fmax代表种群中最优染色体的适应度大小,Ck按照以下公式进行计算:
kmax表示遗传算法的最大迭代次数,Ck-1表示第Ck-1次迭代时的温度退火系数,温度退火系数的初始值C0根据实际需要设置。
4.根据权利要求1所述的服务器负载均衡方法,其特征在于,所述步骤S5.6中对生成的子代染色体采用以下方法判断是否接受:
当子代染色体采用双点交叉生成时,如果两条子代染色体的适应度均比两条父代染色体的适应度更优,则接受这两条子代染色体,进入变异操作,即步骤S5.7;否则采用以下方式计算子代染色体的接收概率R:
其中,ε为常量参数,分别为两条父代染色体的适应度值, 分别为两条子代染色体的适应度值,exp表示以自然常数e为底的指数函数;
生成0到1之间的随机数random,若random≤R则两条子代染色体被接受,进入变异操作,即步骤S5.7;否则两条子代染色体不被接受,返回步骤S5.5重新进行染色体选择;
当子代染色体采用自交叉生成时,如果子代染色体的适应度比父代染色体的适应度更优,则接受这条子代染色体,进入变异操作,即步骤S5.7;否则采用以下方式计算子代染色体的接收概率R:
R=exp[-ε(fparent-fchildren)]
其中,fparent、fchildren分别为父代染色体和子代染色体的适应度值。
生成0到1之间的随机数random,若random≤R则子代染色体被接受,进入变异操作,即步骤S5.7;否则子代染色体不被接受,返回步骤S5.5重新进行染色体选择。
5.根据权利要求1所述的服务器负载均衡方法,其特征在于,所述步骤S5.7中染色体在进行变异操作时的变异率pm采用以下公式计算:
其中,kmax和k分别表示种群最大迭代次数和当前迭代次数,pmstart和pmend分别表示预设的变异率的初始值和最终值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910418912.3A CN110225096B (zh) | 2019-05-20 | 2019-05-20 | 基于遗传算法的服务器负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910418912.3A CN110225096B (zh) | 2019-05-20 | 2019-05-20 | 基于遗传算法的服务器负载均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110225096A true CN110225096A (zh) | 2019-09-10 |
CN110225096B CN110225096B (zh) | 2021-12-10 |
Family
ID=67821666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910418912.3A Expired - Fee Related CN110225096B (zh) | 2019-05-20 | 2019-05-20 | 基于遗传算法的服务器负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110225096B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110781003A (zh) * | 2019-10-24 | 2020-02-11 | 重庆邮电大学 | 一种粒子群融合变异控制的负载均衡方法 |
CN112163699A (zh) * | 2020-09-21 | 2021-01-01 | 西安建筑科技大学 | 一种基于负荷匹配的冷水机组台数控制优化方法 |
CN112561225A (zh) * | 2020-09-30 | 2021-03-26 | 北京工业大学 | 一种基于标杆协同进化算法的柔性作业车间调度方法 |
CN112787833A (zh) * | 2019-11-07 | 2021-05-11 | 中国电信股份有限公司 | 内容分发网络cdn服务器的部署方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1345167A1 (en) * | 2002-03-12 | 2003-09-17 | BRITISH TELECOMMUNICATIONS public limited company | Method of combinatorial multimodal optimisation |
CN102063339A (zh) * | 2010-12-21 | 2011-05-18 | 北京高森明晨信息科技有限公司 | 基于云计算系统的资源负载均衡的方法和设备 |
CN105704255A (zh) * | 2016-04-29 | 2016-06-22 | 浙江理工大学 | 一种基于遗传算法的服务器负载均衡方法 |
-
2019
- 2019-05-20 CN CN201910418912.3A patent/CN110225096B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1345167A1 (en) * | 2002-03-12 | 2003-09-17 | BRITISH TELECOMMUNICATIONS public limited company | Method of combinatorial multimodal optimisation |
CN102063339A (zh) * | 2010-12-21 | 2011-05-18 | 北京高森明晨信息科技有限公司 | 基于云计算系统的资源负载均衡的方法和设备 |
CN105704255A (zh) * | 2016-04-29 | 2016-06-22 | 浙江理工大学 | 一种基于遗传算法的服务器负载均衡方法 |
Non-Patent Citations (1)
Title |
---|
魏雪: "基于遗传算法的web服务器集群负载均衡的研究", 《《中国优秀硕士论文全文数据库 信息科技辑》》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110781003A (zh) * | 2019-10-24 | 2020-02-11 | 重庆邮电大学 | 一种粒子群融合变异控制的负载均衡方法 |
CN110781003B (zh) * | 2019-10-24 | 2023-04-07 | 重庆邮电大学 | 一种粒子群融合变异控制的负载均衡方法 |
CN112787833A (zh) * | 2019-11-07 | 2021-05-11 | 中国电信股份有限公司 | 内容分发网络cdn服务器的部署方法和装置 |
CN112787833B (zh) * | 2019-11-07 | 2022-08-12 | 中国电信股份有限公司 | 内容分发网络cdn服务器的部署方法和装置 |
CN112163699A (zh) * | 2020-09-21 | 2021-01-01 | 西安建筑科技大学 | 一种基于负荷匹配的冷水机组台数控制优化方法 |
CN112163699B (zh) * | 2020-09-21 | 2023-06-16 | 西安建筑科技大学 | 一种基于负荷匹配的冷水机组台数控制优化方法 |
CN112561225A (zh) * | 2020-09-30 | 2021-03-26 | 北京工业大学 | 一种基于标杆协同进化算法的柔性作业车间调度方法 |
CN112561225B (zh) * | 2020-09-30 | 2023-11-07 | 北京工业大学 | 一种基于标杆协同进化算法的柔性作业车间调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110225096B (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110225096B (zh) | 基于遗传算法的服务器负载均衡方法 | |
CN112286677B (zh) | 一种面向资源受限边缘云的物联网应用优化部署方法 | |
CN107317699B (zh) | 一种云制造服务组合的动态蚁群快速优选方法 | |
CN110118566B (zh) | 机器人运行路径生成方法及装置 | |
CN113485826B (zh) | 一种边缘服务器负载均衡方法、系统 | |
CN111178440B (zh) | 一种基于高效减小agv总运输成本的路径优化方法 | |
CN109447264B (zh) | 云计算环境下基于vham-r模型的虚拟机放置遗传优化方法 | |
CN111240796B (zh) | 一种基于改进mmas的负载均衡调度方法 | |
Zhang et al. | Stochastic dynamic economic emission dispatch with unit commitment problem considering wind power integration | |
CN111488528A (zh) | 内容缓存管理方法及装置、电子设备 | |
CN111258980A (zh) | 一种云存储系统中基于组合预测的动态文件放置方法 | |
CN109298930A (zh) | 一种基于多目标优化的云工作流调度方法及装置 | |
CN112036651A (zh) | 基于量子免疫优化bp神经网络算法的电价预测方法 | |
CN116955959A (zh) | 一种基于多目标演化算法的时间序列预测集成方法 | |
JP7137074B2 (ja) | 最適化計算方法、最適化計算装置及び最適化計算プログラム | |
CN117060408B (zh) | 新能源发电预测方法及系统 | |
CN112486651B (zh) | 一种基于改进遗传算法的云测试平台任务调度方法 | |
CN112631612B (zh) | 一种基于遗传算法的kubernetes云平台配置的优化方法 | |
CN105976052A (zh) | 基于改进量子粒子群算法的多区域经济调度方法 | |
CN111412795A (zh) | 测试点设置方案生成方法及装置 | |
CN110610264A (zh) | 一种针对不确定性情景下供水管网调控的单目标优化算法 | |
CN112787833A (zh) | 内容分发网络cdn服务器的部署方法和装置 | |
CN113127167B (zh) | 一种基于改进遗传算法的异构资源智能并行调度方法 | |
CN111290853B (zh) | 一种基于自适应改进遗传算法的云数据中心调度方法 | |
CN109038609B (zh) | 电力系统无功优化方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211210 |