CN113641471B - 基于遗传算法模型的软负载调度方法、装置、设备及介质 - Google Patents
基于遗传算法模型的软负载调度方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113641471B CN113641471B CN202110872236.4A CN202110872236A CN113641471B CN 113641471 B CN113641471 B CN 113641471B CN 202110872236 A CN202110872236 A CN 202110872236A CN 113641471 B CN113641471 B CN 113641471B
- Authority
- CN
- China
- Prior art keywords
- chromosome
- chromosomes
- array
- nodes
- target node
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 45
- 230000002068 genetic effect Effects 0.000 title claims abstract description 32
- 210000000349 chromosome Anatomy 0.000 claims abstract description 472
- 108090000623 proteins and genes Proteins 0.000 claims description 36
- 238000004364 calculation method Methods 0.000 claims description 25
- 230000035772 mutation Effects 0.000 claims description 25
- 239000011159 matrix material Substances 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 13
- 230000003044 adaptive effect Effects 0.000 claims description 10
- 238000011156 evaluation Methods 0.000 claims description 7
- 238000011144 upstream manufacturing Methods 0.000 claims description 5
- 230000001186 cumulative effect Effects 0.000 claims description 4
- 239000012634 fragment Substances 0.000 claims description 2
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000001850 reproductive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008033 biological extinction Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000004043 dyeing Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000010429 evolutionary process Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Genetics & Genomics (AREA)
- Artificial Intelligence (AREA)
- Physiology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及计算机及人工智能领域,公开了一种基于遗传算法模型的软负载调度方法、装置、设备及介质,将目标节点与目标节点被调用的消耗时间RT组成基因片段,并将多个基因片段组成一条第一染色体,将多条第一染色体组成第一染色体组数组,这样通过计算每条第一染色体的适应度值,从而能够将低于预设值的第一染色体从第一染色体数组中删除,再对剩余的第一染色体进行交叉、组成得到第二染色体,这样使得第二染色体的适应度值高于第一染色体,将多个第二染色体组成第二染色体数组,基于第二染色体数组,对多个任务进行调度。这样能够确保后生代的染色体数组比前代的染色体数组更加适应于环境,从而使得整个集群节点的利用率越来越高。
Description
技术领域
本发明涉及计算机及人工智能领域,特别涉及一种基于遗传算法模型的软负载调度方法、装置、设备及介质。
背景技术
在一台服务器的操作系统上,安装一个附加软件来实现负载均衡,即为软负载,软负载调度是通过最小化响应时间与最大化节点利用率,选择服务器集群中适合的节点进行负载分配。传统的软负载均衡算法一般分为静态软负载均衡算法与动态软负载均衡算法,而这两种软负载均衡算法的实现都比较简单,即认为现实环境是稳定的,但是实际集群中的节点情况是复杂的,每个节点的性能会随着各种情况动态变化,比如GC(garbagecollect,垃圾回收机制),访问的共有资源阻塞问题会导致性能短时间下降,故传统的软负载均衡算法往往会错误的判断集群中每个节点的性能,从而无法充分发挥集群节点的总体性能。
发明内容
本发明的主要目的为提供一种基于遗传算法模型的软负载调度方法、装置、设备及介质,旨在解决现有技术中的软负载均衡算法无法充分发挥集群节点的总体性能的技术问题。
本申请提出一种基于遗传算法模型的软负载调度方法,包括以下步骤:
获取不同的目标节点,以及不同的所述目标节点被调用的消耗时间RT;
将每个所述目标节点与所述目标节点对应的RT组成基因片段,得到若干基因片段;
基于若干所述基因片段,组成多条第一染色体,并将多条所述第一染色体组成第一染色体数组;其中,一条所述第一染色体由任意多个所述基因片段组成;
基于所述第一染色体数组中每条第一染色体的所述目标节点和所述RT,计算所述第一染色体数组中每条第一染色体的适应度值,其中,所述适应度值用于指示所述第一染色体中所述目标节点的性能评估指标;
将所述适应度值小于适应阈值的第一染色体从所述第一染色体数组中删除,并将剩余的所述第一染色体依次进行随机交叉、随机组合,形成第二染色体数组;
基于所述第二染色体数组,完成软负载对若干个任务的调度。
作为优选,获取不同的目标节点,以及不同的所述目标节点被调用的消耗时间RT的步骤之前,包括;
获取与上游任务端对应的下游集群中的多个解集,其中,每个所述解集中包括多个节点,所述节点用于调用任务;
随机获取每个所述解集中的一个节点,将多个随机获取的所述节点组成初代种群;
将所述初代种群中的所有所述节点均作为所述目标节点进行调用。
作为优选,所述将所述初代种群中的所有所述节点均作为所述目标节点进行调用的步骤,包括:
获取预先设置的矩阵的列数与行数,其中,所述列数表征种群总数,所述行数表征所述节点的总数;
将所述列数与所述行数相乘,得到待处理任务的总数;
根据待处理任务的总数,将所述初代种群中的所有节点作为目标节点放入所述矩阵中,以完成对所有所述待处理任务的分配,其中,每一个待处理的任务均对应一个所述目标节点;
所述获取不同的目标节点的步骤,包括:
到放入所述目标节点的所述矩阵中获取不同的所述目标节点。
作为优选,所述基于所述第一染色体数组中每条第一染色体的所述目标节点和所述RT,计算所述第一染色体数组中每条第一染色体的适应度值的步骤,包括:
获取CPU指标的权重与每条所述第一染色体中每一个所述目标节点对应RT的权重,其中,所述CPU指标为所述下游集群中所述解集对应的多个宿主机的CPU指标;
计算每条所述第一染色体中每一个所述目标节点的权重评分,其中,计算公式为:
L(Bi)=R1*Lcpu(Bi)+R2*Lr(Bi);
其中,R1表示所述解集对应的每一个所述宿主机的CPU指标的权重,R2为每一个所述目标节点对应的RT的权重,Lcpu(Bi)为每一个所述目标节点对应的宿主机的编号,Lr(Bi)为每一个所述RT对应的宿主机的编号;
根据每一个所述目标节点的权重评分,计算与所述目标节点对应的所述第一染色体的总权重评分,得到每条所述第一染色体的适应度值,其中,计算公式为:
Ltotal=∑L(Bi);
其中,所述∑L(Bi)为将每一条所述第一染色体中的所有所述目标节点对应的权重评分相加,所述Ltotal为每一条所述第一染色体中所有所述目标节点权重评分相加的总和。
作为优选,所述将所述适应度值小于适应阈值的第一染色体从所述第一染色体数组中删除,并将剩余的所述第一染色体进行随机交叉、随机组合,形成第二染色体数组的步骤包括:
比较所述第一染色体所对应的总权重评分与适应阈值,得到小于适应阈值的所述第一染色体,将小于适应阈值的所述第一染色体从所述第一染色体数组中删除;
将剩余的每条所述第一染色体所对应的总权重评分相加,得到第一染色体数组的数组权重评分;
根据剩余的所述第一染色体所对应的总权重评分和所述第一染色体数组的数组权重评分,通过轮盘赌选择算法计算剩余的每条所述第一染色体被选择的概率值,其中,计算公式为:
其中,P(xi)为第i条剩余的所述第一染色体被选择的概率,f(xi)为第i条剩余的所述第一染色体对应的总权重评分,为所述第一染色体数组的数组权重评分,i属于N,j的值小于或等于i的值;
根据剩余的每条所述第一染色体被选择的概率值,计算剩余的每条所述第一染色体的所处区间,其中,计算公式为:
其中,所述q(xi)为第i条剩余的所述第一染色体的积累概率值,为将第一染色体数组中剩余的第j条至第i条所述第一染色体被选择的概率值相加;
选取第一随机数,其中,所述第一随机数的选取个数至少为两个,其中,所述第一随机数的选取范围从零至所述第一染色体数组的数组权重评分的范围内选取;
查找至少两个所述第一随机数对应的剩余的所述第一染色体的所处区间;
选取至少两个剩余的所述第一染色体的所处区间内对应的剩余的第一染色体,并将两个剩余的所述第一染色体作为父本;
随机选取一个交叉点,将作为父本的两个所述第一染色体进行交叉、组合,形成第二染色体,并统计形成的第二染色体的数目,其中,所述交叉点的选取范围在零至剩余的所述第一染色体中各目标节点的总数范围之内;
判断所述第二染色体的数目与预设值是否相等;
若所述第二染色体的数目与所述预设值不相等,返回到所述选取第一随机数的步骤;
若所述第二染色体的数目与所述预设值相等,则对所述第二染色体数目进行整和,形成第二染色体数组。
作为优选,所述基于所述第二染色体数组,完成软负载对若干个任务的调度的步骤,包括:
对所述第二染色体数组中的多条第二染色体进行变异,得到多条变异染色体,将多条所述变异染色体组成变异染色体数组;
基于所述变异染色体数组,完成软负载对若干个任务的调度。
作为优选,所述对所述第二染色体数组中的多条第第二染色体进行变异,得到多条变异染色体,将多条所述变异染色体组成变异染色体数组的步骤包括:
获取预先设置的变异率;
获取所述第二染色体数组中每条所述第二染色体中所述目标节点的总数与每个目标节点所对应的编号,其中,所述编号按照前后顺序依次排列;
根据所述变异率随机选取与所述变异率对应的任意个第二随机数,其中,所述第二随机数的范围从零至每条所述第二染色体中目标节点的总数的范围内进行选取;
获取任意个所述第二随机数对应的编号,对所述编号对应的所述目标节点进行变异,得到变异染色体;
对所述变异染色体进行整合,得到变异染色体数组。
本申请还提供一种基于遗传算法模型的软负载调度装置,包括:
获取模块:用于获取不同的目标节点,以及不同的所述目标节点被调用的消耗时间RT;
第一组成模块:用于将每个所述目标节点与所述目标节点对应的RT组成基因片段,得到若干基因片段;
第二组成模块:用于基于若干所述基因片段,组成多条第一染色体,并将多条所述第一染色体组成第一染色体数组;其中,一条所述第一染色体由任意多个所述基因片段组成;
计算模块:用于基于所述第一染色体数组中每条第一染色体的所述目标节点和所述RT,计算所述第一染色体数组中每条第一染色体的适应度值,其中,所述适应度值用于指示所述第一染色体中所述目标节点的性能评估指标;
形成模块:用于将所述适应度值小于适应阈值的第一染色体从所述第一染色体数组中删除,并将剩余的所述第一染色体依次进行随机交叉、随机组合,形成第二染色体数组;
调度模块:用于基于所述第二染色体数组,完成软负载对若干个任务的调度。
本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述基于遗传算法模型的软负载调度方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于遗传算法模型的软负载调度方法的步骤。
本发明的有益效果为:基于遗传算法,将目标节点与目标节点被调用的消耗时间RT组成基因片段,并将多个基因片段组成一条第一染色体,将多条第一染色体组成第一染色体组数组,这样通过计算每条第一染色体的适应度值,从而能够将低于预设值的第一染色体从第一染色体数组中删除,再对剩余的第一染色体进行交叉、组成得到第二染色体,这样使得第二染色体的适应度值高于第一染色体,将多个第二染色体组成第二染色体数组,基于第二染色体数组,对多个任务进行调度。这样使得软负载在进行任务分配时,不需要关注目标节点的性能,只需要在调用过程中不断的尝试,排除掉差的分配方式,随着不断的迭代,能够使调度动态地朝最优解靠拢,即能够确保后生代的染色体数组比前代的染色体数组更加适应于环境,从而使得整个集群节点的利用率越来越高。
附图说明
图1为本发明一实施例的基于遗传算法模型的软负载调度方法流程示意图。
图2为本发明一实施例的基于遗传算法模型的软负载调度装置结构示意图。
图3为本发明一实施例的计算机设备内部结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本申请提供一种基于遗传算法模型的软负载调度方法,包括以下步骤:
S1、获取不同的目标节点,以及不同的所述目标节点被调用的消耗时间RT;
S2、将每个所述目标节点与所述目标节点对应的RT组成基因片段,得到若干基因片段;
S3、基于若干所述基因片段,组成多条第一染色体,并将多条所述第一染色体组成第一染色体数组;其中,一条所述第一染色体由任意多个所述基因片段组成;
S4、基于所述第一染色体数组中每条第一染色体的所述目标节点和所述RT,计算所述第一染色体数组中每条第一染色体的适应度值,其中,所述适应度值用于指示所述第一染色体中所述目标节点的性能评估指标;
S5、将所述适应度值小于适应阈值的第一染色体从所述第一染色体数组中删除,并将剩余的所述第一染色体依次进行随机交叉、随机组合,形成第二染色体数组;
S6、基于所述第二染色体数组,完成软负载对若干个任务的调度。
在上述步骤S1-S3中,软负载调度任务时,需要通过调用目标节点来实现,因此通过获取目标节点与该目标节点被调用的消耗时间,可以了解到任务被调度所消耗的时长,为了简要说明,现将目标节点被调用的消耗时间定义为RT进行说明;具体的,可将目标节点与调用该目标节点被消耗的时间RT组成基因片段,则基因片段为[目标节点,RT],通过将目标节点与RT组成一个基因片段,则可以了解到每一个基因片段的性能;基于若干所述基因片段,组成多条第一染色体,并将多条所述第一染色体组成第一染色体数组;这样,可将第一染色体作为父本去去模拟自然进化论的过程,从而搜索到最优解的软负载调度方法。
在上述步骤S4-S6中,适应度值,指的是在某种环境条件下,某已知基因型的个体将其基因传递到其后代基因库中的相对能力是衡量个体存活和生殖机会的尺度,适应度值越大,存活和生殖机会越高。因此,本申请通过计算第一染色体数组中每条第一染色体的适应度值,从而能够了解到每一条第一染色体的性能指标,将每一条第一染色体与适应阈值相比较,从而能够将性能指标较低的第一染色体从第一染色体数组中删除,对于剩余的第一染色体通过交叉、组合的方式组成第二染色体,从而使得第二染色体的性能指标优于第一染色体的性能指标,将多个第二染色体整合成第二染色体数组,基于第二染色体数组,完成软负载对若干个任务的调度,这样,能够保证第二染色体数组的调用结果总是优于第一染色体数组的调用结果,即后一代的调用结果总是优于前一代;更优的,在基于所述第二染色体数组,完成软负载对若干个任务的调度之后,可返回到S1步骤中,以进行迭代,并计算迭代次数,当迭代次数到达预设值之后,停止迭代;因为如果频繁迭代,例如第一次迭代能够提高20%的效果,那么第二次迭代只能在第一次提升的20%的效果上再次提高18%的效果,所以迭代次数越频繁,后期越难以在上一次的基础上继续提升,因此,若提高的效果比不上迭代算法的损耗,则会造成资源浪费,因此,可通过判断预设时间段内的迭代次数是否达到预设值来终止迭代,从而避免频繁迭代产生过多的损耗。
在一个实施例中,所述获取不同的目标节点,以及不同的所述目标节点被调用的消耗时间RT的步骤S1之前,包括;
S11、获取与上游任务端对应的下游集群中的多个解集,其中,每个所述解集中包括多个节点,所述节点用于调用任务;
S12、随机获取每个所述解集中的一个节点,将多个随机获取的所述节点组成初代种群;
S13、将所述初代种群中的所有所述节点均作为所述目标节点进行调用。
在上述步骤S11-13中,通过获取与上游任务端对应的下游集群中的多个解集与每一个解集中的节点,从而可将每一个解集中的节点组成初代种群,并将每个节点均作为目标节点进行调用,从而在S1步骤中可获取初代种群中的目标节点与RT组成初代的基因片段;现举例进行说明:例如某个服务A要对多个任务进行调度,且服务A需要调用服务B的接口才能实现任务的调度,若集群包括三台机器,且每台机器都部署了服务B,那么这三台机器就是服务B的集群,即集群包括B1,B2,B3,服务A可以选择任意一台机器进行调用,那么就有三种调用方案可以选择,即A->B1,A->B2,A->B3,那么这三种调用方案的选择就是解集,即一个解集为{A->B1,A->B2,A->B3},而A->B1、A->B2与A->B3分别是一个解集{A->B1,A->B2,A->B3}中的三个不同的节点,即一个解集可以包括多个节点,由于服务A调用服务B,因此服务B是服务A的下游,即服务A为上游任务端,服务B的集群则为下游集群,关于调用方法,可使用RPC(Remote Procedure Call,远程过程调用的协议)、HTTP(HyperTextTransfer Protocol,超文本传输协议)或其它的调用方法,此处不做唯一限定;因此,本申请可获取下游集群的多个解集,再从每一个解集中随机获取一个节点,将多个获取的节点组成初代种群,再将初代种群中的所有节点均作为目标节点进行调用。
在一个实施例中,所述将所述初代种群中的所有所述节点均作为所述目标节点进行调用的步骤S13,包括:
S131、获取预先设置的矩阵的列数与行数,其中,所述列数表征种群总数,所述行数表征所述节点的总数;
S132、将所述列数与所述行数相乘,得到待处理任务的总数;
S133、根据待处理任务的总数,将所述初代种群中的所有节点作为目标节点放入所述矩阵中,以完成对所有所述待处理任务的分配,其中,每一个待处理的任务均对应一个所述目标节点;
所述获取不同的目标节点的步骤S1,包括:
S10、到放入所述目标节点的所述矩阵中获取不同的所述目标节点。
在上述步骤S131-133中,通过获取预先设置的矩阵的列数与行数,将所述列数与所述行数相乘,得到待处理任务的总数;将初代种群中的所有节点作为目标节点放入矩阵中,并将每一个待处理任务与每一个目标节点进行对应,以完成对所有所述待处理任务的分配;矩阵的列数与行数可以根据实际需求进行设置,具体的,行数与列数可按实际需求进行设置,在一个实施例中,可将行数与列数各设置为100,即种群总数为100个,每条染色体中目标节点的总数为100,为了便于理解,每条染色体中目标节点的总数为100可以理解为每条染色体的长度为100,那么每条染色体都包括100个目标节点:{A->B1}、{A->B2}或{A->B3},种群总数为100,行数列数相乘,共有10000个待处理的任务,这样可将每个待处理的任务分配给一个目标节点,从而避免待处理的任务分配不均,也可以满足目标节点后续的调用。也即步骤S10所述,可到放入目标节点的矩阵中获取不同的目标节点,这样能够确保步骤S1中的每一个目标节点均能分配到一个待处理任务,从而每一个目标节点被调用时,便于获取到该目标节点被调用的消耗时间RT。
更优的,也可以获取矩阵的列数与行数之后,再获取与染色体长度对应的多个解集,由于本实施例中,染色体长度为100,因此,可获取下游集群中的100个解集,比如一个解集为{A->B1,A->B2,A->B3},那么100个解集则是100个{A->B1,A->B2,A->B3},因此,可随机从每个解集中获取一个节点,即从{A->B1,A->B2,A->B3}中随机获取一个,可以是{A->B1}、{A->B2}或{A->B3},获取100次,则得到100个节点,可以将100个节点按照获取顺序排列整合,即得到一条染色体;由于种群总数为100,因此可以从第一个解集{A->B1,A->B2,A->B3}中随机获取100个节点作为第一条染色体,第二个解集中随机获取100个节点作为第二条染色体,第三个解集中随机获取100个节点作为第三条染色体,第四个解集中随机获取100个节点作为第四条染色体,第五个解集中随机获取100个目标节点……直到从第100个解集中随机获取100个目标节点作为第一百条染色体,将上述的一百条染色体作为初代种群,则初代种群包括100个染色体长度为100的节点,例如初代种群包括:染色体1:[{A->B1};{A->B3};{A->B2};{A->B1};{A->B3}……{A->B1}],染色体2:[{A->B3};{A->B1};{A->B2};{A->B3};{A->B1}……{A->B1},……染色体100:[{A->B3};{A->B2};{A->B3};{A->B2};{A->B1}……{A->B1}];通过将这100个染色体整合作为初代种群,再将初代种群中的每一个目标节点与矩阵中的待处理的任务一一对应,从而能够去模拟自然进化论过程,以搜索到最优解的方法。
更优的,可以执行完上述步骤S14-S16和/或步骤S11-13之后,再执行上述S1-S6步骤,即将初代种群中的节点作为目标节点调用后,可获取初代种群中的所有目标节点和与目标节点对应的RT作为基因片段,再将多个基因片段组成一条第一染色体,将多条第一染色体组成第一染色体组;例如,初代种群为:染色体1:[{A->B1};{A->B3};{A->B2};{A->B1};{A->B3}……{A->B1}],染色体2:[{A->B3};{A->B1};{A->B2};{A->B3};{A->B1}……{A->B1},……染色体100:[{A->B3};{A->B2};{A->B3};{A->B2};{A->B1}……{A->B1}],那么获取每个目标节点所对应的RT之后,组成的第一染色数组可以是:第一染色体<1>:[{A->B1,RT=100};{A->B3,RT=50};{A->B2,RT=150};{A->B1,RT=60}{A->B3,RT=1200}……{A->B1,RT=5000}]第一染色体<2>:[{A->B3,RT=30};{A->B1,RT=100;{A->B2,RT=350};{A->B3,RT=2500;{A->B1,RT=6000}……{A->B1,RT=1000},……第一染色体<100>:[{A->B3,RT=70};{A->B2,RT=320;{A->B3,RT=180;{A->B2,RT=450};{A->B1,RT=3200}……{A->B1,RT=4000}],即第一染色体数组包括100个长度为100的第一染色体。
在一个实施例中,所述基于所述第一染色体数组中每条第一染色体的所述目标节点和所述RT,计算所述第一染色体数组中每条第一染色体的适应度值的步骤S4,包括:
S41、获取CPU指标的权重与每条所述第一染色体中每一个所述目标节点对应RT的权重,其中,所述CPU指标为所述下游集群中所述解集对应的多个宿主机的CPU指标;
S42、计算每条所述第一染色体中每一个所述目标节点的权重评分,其中,计算公式为:
L(Bi)=R1*Lcpu(Bi)+R2*Lr(Bi);
其中,R1表示所述解集对应的每一个所述宿主机的CPU指标的权重,R2为每一个所述目标节点对应的RT的权重,Lcpu(Bi)为每一个所述目标节点对应的宿主机的编号,Lr(Bi)为每一个所述RT对应的宿主机的编号;
S43、根据每一个所述目标节点的权重评分,计算与所述目标节点对应的所述第一染色体的总权重评分,得到每条所述第一染色体的适应度值,其中,计算公式为:
Ltotal=∑L(Bi);
其中,所述∑L(Bi)为将每一条所述第一染色体中的所有所述目标节点对应的权重评分相加,所述Ltotal为每一条所述第一染色体中所有所述目标节点权重评分相加的总和。
在上述步骤S41-S43中,第一染色体数组的适应度值可基于CPU指标与RT指标来计算,由于CPU指标需要下游服务器监控自己的CPU指标,如上述实施例中,服务B需要监控B1,B2,B3这3台机器的CPU指标,然后定时将CPU指标通知给调用方,即服务A,或者在组合成第二染色体数组之前,服务A也可以去下游服务B获取B1、B2、B3对应的CPU指标。通过获取B1、B2、B3的CPU指标,而不是每一次调用都获取一次CPU指标,这样可以避免每一个目标节点都维护一个CPU指标,只需要全局维护一个下游服务B的整体的CPU指标,这样能够减少迭代时的计算损耗,避免运行卡顿,更优的,也可以在预设时间内自动更新CPU指标,以使获取方式更加智能化;具体的,可通过计算公式L(Bi)=R1*Lcpu(Bi)+R2*Lr(Bi);Ltotal=∑L(Bi)来计算所述第一染色体数组中每条第一染色体的权重评分,其中,R1为CPU指标的权重,R2为RT的权重,Lcpu(Bi)为所述每一个目标节点对应的服务器的编号,即Lcpu(B1)、Lcpu(B2)、Lcpu(B3)……;Lr(Bi)为所述每一个RT对应的服务器的编号,即Lr(B1)、Lr(B2)、Lr(B3)……;∑L(Bi)为将每一条所述第一染色体的权重评分相加,Ltotal为每一条所述第一染色体中各目标节点的权重评分相加的总和;权重是针对某一指标而言,某一指标的权重是指该指标在整体评价中的相对重要程度。因此,通过将CPU指标的权重与RT的权重相加,这样能够算出每条第一染色体中各目标节点所对应的权重评分的总和,而通过每条第一染色体的总权重评分能够看出第一染色体数组中每条第一染色体的适应度。
需要说明的是,在上述步骤S41-S43计算适应度值时,采用的CPU指标指的是宿主机的CPU指标而非容器的CPU指标,即我们关注的目标节点的适应度是通过宿主机的CPU指标来确定的,而非内存、磁盘等其他因素指标。因为根据实际经验,内存与磁盘的成本相对于宿主机的CPU来说比较低,通常公司运维为了充分利用宿主机的CPU都会让目标节点的其他性能瓶颈转为CPU瓶颈,而且现在业务架构演进的方向也是存算分离得架构,软负载均衡绝大部分情况下都是计算密度型场景,所以性能指标我们选择只关注宿主机的CPU,而不是容器的指标,是因为大部分应用都是运行在容器中的,而容器是资源隔离的,且容器的资源是预先定义好的,如果按照容器的资源来实现软负载分配,很可能会出现容器的CPU资源不足但是实际宿主机的CPU资源充足的情况,导致无法充分发挥宿主机CPU的全部性能。所以本申请中选择的是宿主机的CPU指标;更优的,按照服务级别,可以在宿主机CPU资源不足的情况下优先给高优先级的服务提供指标。除此之外,本实施例使用声明式,即关注第一染色体数组这个整体,而不用提前预估每条第一染色体中每个目标节点的处理能力,也不用提前配置第一染色体数组每个目标节点的分配比例,只需要获取每条第一染色体中的目标节点,而目标节点对应的RT能够将目标节点按照重要性进行分级,从而能够根据实时收集的宿主机的CPU指标与RT指标,动态的调度软负载。
在一个实施例中,所述将所述适应度值小于适应阈值的第一染色体从所述第一染色体数组中删除,并将剩余的所述第一染色体进行随机交叉、随机组合,形成第二染色体数组的步骤S5包括:
S501、获取每条所述第一染色体所对应的总权重评分;
S502、根据所述第一染色体所对应的总权重评分,淘汰低于预设总权重评分的第一染色体;
S503、将剩余的每条所述第一染色体所对应的总权重评分相加,得到第一染色体数组的数组权重评分;
S504、根据剩余的所述第一染色体所对应的总权重评分和所述第一染色体数组的数组权重评分,通过轮盘赌选择算法计算剩余的每条所述第一染色体被选择的概率值,其中,计算公式为:
其中,P(xi)为第i条剩余的所述第一染色体被选择的概率,f(xi)为第i条剩余的所述第一染色体对应的总权重评分,为所述第一染色体数组的数组权重评分,i属于N,j的值小于或等于i的值;
S505、根据剩余的每条所述第一染色体被选择的概率值,计算剩余的每条所述第一染色体的所处区间,其中,计算公式为:
其中,所述q(xi)为第i条剩余的所述第一染色体的积累概率值,为将第一染色体数组中剩余的第j条至第i条所述第一染色体被选择的概率值相加;
S506、选取第一随机数,其中,所述第一随机数的选取个数至少为两个,其中,所述第一随机数的选取范围从零至所述第一染色体数组的数组权重评分的范围内选取;
S507、查找至少两个所述第一随机数对应的剩余的所述第一染色体的所处区间;
S508、选取至少两个剩余的所述第一染色体的所处区间内对应的剩余的第一染色体,并将两个剩余的所述第一染色体作为父本;
S509、随机选取一个交叉点,将作为父本的两个所述第一染色体进行交叉、组合,形成第二染色体,并统计形成的第二染色体的数目,其中,所述交叉点的选取范围在零至剩余的所述第一染色体中各目标节点的总数范围之内;
S510、判断所述第二染色体的数目与预设值是否相等;
S511、若所述第二染色体的数目与所述预设值不相等,返回到所述选取第一随机数的步骤;
S512、若所述第二染色体的数目与所述预设值相等,则对所述第二染色体数目进行整和,形成第二染色体数组。
在上述步骤S501-S512中,通过获取每一条第一染色体所对应的总权重评分,这样能够将低于预设权重评分的第一染色体淘汰掉,从而留下适应度高于预设权重评分的第一染色体;再根据总权重评分和整体权重评分通过轮盘赌选择算法计算剩余的每一条所述第一染色体所处的区间,然后通过获取第一随机数,选取至少2个染色体区间内对应的2个第一染色体作为父本,随机选取一个交叉点,将作为父本的第一染色体进行交叉、组合,组成第二染色体,并统计第二染色体的数目;若第二染色体的数目与预设值不相等,则返回到所述选取第一随机数的步骤S506,持续组成第二染色体;若第二染色体的数目与所述预设值相等,则对第二染色体数目进行整和,形成第二染色体数组。具体的,预设值可以是上述步骤S14中预先获取的种群总数,例如种群数目为100,则返回到所述选取第一随机数的步骤S506100次,从而能够组成100个第二染色体;现为了更清楚的描述本实施例,将种群总数设置为5,即第一染色体数组中包括5条第一染色体,假设5条第一染色体分别对应的总权重评分为1、2、3、4、5,那么第一染色体数组的数组权重评分为1+2+3+4+5=15,对应的区间分别为(0,1],(1,3],(3,6],(6,10],(10,15],假设现在需要选用两条第一染色体进行交叉,那么我们可通过轮盘赌算法获取2个第一随机数,假设第一随机数为7,2,那么其对应的区间就分别为(6,10],(1,3],那么就选中第4条与第2条第一染色体作为父本,假设第4条的第一染色体为[{A->B1,RT=100};{A->B2,RT=10};{A->B3,RT=500};{A->B3 RT=150};{A->B1,RT=1000}],第2条第一染色体为[{A->B2,RT=4000};{A->B3,RT=6000};{A->B1,RT=320};{A->B2,RT=70};{A->B2,RT=180}],即第一染色体的长度为5,每个第一染色体包括5个目标节点,那么对每条第一染色体进行交叉组合时,我们先选择随机交叉点,因为第一染色体的长度为5,则从0-5中选取一个第三随机数作为交叉点,假设第三随机数为3,即选择第4条的第一染色体[{A->B1,RT=100};{A->B2,RT=10};{A->B3,RT=500};{A->B3 RT=150};{A->B1,RT=1000}]中的前3个目标节点,与第二条第一染色体[{A->B2,RT=4000};{A->B3,RT=6000};{A->B1,RT=320};{A->B2,RT=70};{A->B2,RT=180}]中的后2个目标节点组合成第二染色体[{A->B1,RT=100};{A->B2,RT=10};{A->B3,RT=500};{A->B2,RT=70};{A->B2,RT=180}];组合成第二染色体的数目后,统计第二染色体的数目,即组成1条第二染色体的数目为1,再返回到上述步骤S506,设置预设值为5次,则组成5条第二染色体;若将预设值设置为100,则组成100条第二染色体,100条第二染色体组成第二染色体数组;再例如,假设第二染色体数组为100个,将淘汰率设置为30%,则100条染色体对应的权重评分中低于淘汰率的第二染色体都会被淘汰掉,那么100个第二染色体中会淘汰30个第二染色体,剩余70个第二染色体,此时,可从70个第二染色体随机选择两个第二染色体作为父本,再从第二染色体的长度中随机选取一个交叉点进行交叉,这样就组成了一条第二染色体,由于第二染色体数组一共为100条第二染色体,因此每条第二染色体都可通过上述随机选择两个第二染色体作为父本这一步骤开始进行交叉、组合,形成第二染色体,再将这100条第二染色体整合,形成第二染色体数组,即第二染色体数组中的每一条第二染色体都可以通过交叉、组合来得到。
在一个实施例中,所述基于所述第二染色体数组,完成软负载对若干个任务的调度的步骤S6,包括:
S61、对所述第二染色体数组中的多条第一染色体进行变异,得到多条变异染色体,将多条所述变异染色体组成变异染色体数组;
S62、基于所述变异染色体数组,完成软负载对若干个任务的调度。
在上述步骤S61-S62的步骤中,可对所述第二染色体数组中的第第二染色体进行变异,得到变异染色体数组;为了避免突发情况导致种群灭绝,即软负载原本将任务分配到高性能的目标节点上,但是因为突发情况,原本分配到高性能目标节点的性能突然降低,即第二染色体数组中没有能够对抗突发情况的第二染色体。因此本实施例通过对第二染色体进行变异以增加第二染色体数组的多样性,这样能够避免目标节点在遇到突发情况时发生崩溃的现象。
在一个实施例中,所述对所述第二染色体数组中的多条第二染色体进行变异,得到多条变异染色体,将多条所述变异染色体组成变异染色体数组的步骤S61包括:
S611、获取预先设置的变异率;
S612、获取每条所述第二染色体中所述目标节点的总数与每个目标节点所对应的编号,其中,所述编号按照前后顺序依次排列;
S613、根据所述变异率随机选取与所述变异率对应的任意个第二随机数,其中,所述第二随机数的范围从零至每条所述第二染色体中目标节点的总数的范围内进行选取;
S614、获取任意个所述第二随机数对应的编号,对所述编号对应的所述目标节点进行变异,得到变异染色体;
S615、对所述变异染色体进行整合,得到变异染色体数组。
在上述步骤S611-S615中,假设预先设置的变异率为10%,第二染色体数组的种群总数为100,每条第二染色体的长度为100,其中一条第二染色体为[{A->B1,RT=100};{A->B3,RT=50};{A->B2,RT=150};{A->B1,RT=60};{A->B3,RT=1200}……{A->B1,RT=5000}],则{A->B1,RT=100}对应的编号为1,{A->B3,RT=50}对应的编号为2,{A->B2,RT=150}对应的编号为3,{A->B1,RT=60}对应的编号为4,{A->B3,RT=1200}对应的编号为5……{A->B1,RT=5000}对应的编号为100,那么第二随机数的选择范围则在[0,100]之间,由于变异率为10%,即从第二染色体中随机选择10个第二随机数,即对10个目标节点进行变异,假设随机数为1、9、54、23、79、45、78、36、52、25,那么将1、9、54、23、79、45、78、36、52、25分别对应的目标节点进行变异,例如,1对应的目标节点为A->B1,那么就将目标节点从A->B1变异为A->B2或A->B3,将上述各第二随机数对应的目标节点均进行变异,则组成变异染色体,每条第二染色体均进行上述操作,即得到变异染色体数组。
在一个实施例中,所述获取不同的目标节点,以及不同的所述目标节点被调用的消耗时间RT的步骤S1之前,还包括:
S101:获取软负载当前的并发度与处理下游集群的处理能力;
S102:判断所述并发度与所述处理能力是否达到预设阈值;
S103:若达到预设阈值,切换所述软负载的运行模式。
在上述步骤S101-S103中,由于上述基于遗传算法模型的软负载调度方法的整个迭代过程并不是一蹴而就的,且对变化的环境的感知能力也是有延迟的,需要经过几轮的迭代才能获得自适应的方案,而通常情况下,突发情况导致的性能波动时间是比较短,比如GC导致的性能波动通常在1秒左右,而且整个统计与计算相比于传统的方案也是需要多消耗一些资源的,所以在并发度不高的情况,直接使用基于遗传算法模型的软负载调度方法实际效果可能还不如直接传统方案,鉴于这种情况,通过实时获取软负载当前的并发度与处理下游集群的处理能力,只有当并发度与所述处理能力达到预设阈值时,这时候使用基于遗传算法模型的软负载调度方法的方案能够带来提升,此时将软负载的运行模式切换到上述中的方法,才能对软负载带来提升。
本申请还提出一种基于遗传算法模型的软负载调度装置,包括:
获取模块1、用于获取不同的目标节点,以及不同的所述目标节点被调用的消耗时间RT;
第一组成模块2、用于将每个所述目标节点与所述目标节点对应的RT组成基因片段,得到若干基因片段;
第二组成模块3、用于基于若干所述基因片段,组成多条第一染色体,并将多条所述第一染色体组成第一染色体数组;其中,一条所述第一染色体由任意多个所述基因片段组成;
计算模块4、用于基于所述第一染色体数组中每条第一染色体的所述目标节点和所述RT,计算所述第一染色体数组中每条第一染色体的适应度值,其中,所述适应度值用于指示所述第一染色体中所述目标节点的性能评估指标;
形成模块5、用于将所述适应度值小于适应阈值的第一染色体从所述第一染色体数组中删除,并将剩余的所述第一染色体依次进行随机交叉、随机组合,形成第二染色体数组;
调度模块6、用于基于所述第二染色体数组,完成软负载对若干个任务的调度。
在一个实施例中,所述基于遗传算法模型的软负载调度装置,还包括;
第一获取单元、用于获取与上游任务端对应的下游集群中的多个解集,其中,每个所述解集中包括多个节点,所述节点用于调用任务;
第二获取单元、用于随机获取每个所述解集中的一个节点,将多个随机获取的所述节点组成初代种群;
调用单元、用于将所述初代种群中的所有所述节点均作为所述目标节点进行调用。
在一个实施例中,所述基于遗传算法模型的软负载调度装置,还包括:
第三获取单元、用于获取预先设置的矩阵的列数与行数,其中,所述列数表征种群总数,所述行数表征所述节点的总数;
第一计算单元、用于将所述列数与所述行数相乘,得到待处理任务的总数;
分配单元、用于根据待处理任务的总数,将所述初代种群中的所有节点作为目标节点放入所述矩阵中,以完成对所有所述待处理任务的分配,其中,每一个待处理的任务均对应一个所述目标节点;
所述获取模块1,包括:
取放单元、用于到放入所述目标节点的所述矩阵中获取不同的所述目标节点。
在一个实施例中,计算模块4,包括:
第四获取单元、用于获取CPU指标的权重与每条所述第一染色体中每一个所述目标节点对应RT的权重,其中,所述CPU指标为所述下游集群中所述解集对应的多个宿主机的CPU指标;
第二计算单元、用于计算每条所述第一染色体中每一个所述目标节点的权重评分,其中,计算公式为:
L(Bi)=R1*Lcpu(Bi)+R2*Lr(Bi);
其中,R1表示所述解集对应的每一个所述宿主机的CPU指标的权重,R2为每一个所述目标节点对应的RT的权重,Lcpu(Bi)为每一个所述目标节点对应的宿主机的编号,Lr(Bi)为每一个所述RT对应的宿主机的编号;
第三计算单元、用于根据每一个所述目标节点的权重评分,计算与所述目标节点对应的所述第一染色体的总权重评分,得到每条所述第一染色体的适应度值,其中,计算公式为:
Ltotal=∑L(Bi);
其中,所述∑L(Bi)为将每一条所述第一染色体中的所有所述目标节点对应的权重评分相加,所述Ltotal为每一条所述第一染色体中所有所述目标节点权重评分相加的总和。
在一个实施例中,形成模块5包括:
比较单元:用于比较所述第一染色体所对应的总权重评分与适应阈值,得到小于适应阈值的所述第一染色体,将小于适应阈值的所述第一染色体从所述第一染色体数组中删除;
第四计算单元、用于将剩余的每条所述第一染色体所对应的总权重评分相加,得到第一染色体数组的数组权重评分;
第五计算单元、用于根据剩余的所述第一染色体所对应的总权重评分和所述第一染色体数组的数组权重评分,通过轮盘赌选择算法计算剩余的每条所述第一染色体被选择的概率值,其中,计算公式为:
其中,P(xi)为第i条剩余的所述第一染色体被选择的概率,f(xi)为第i条剩余的所述第一染色体对应的总权重评分,为所述第一染色体数组的数组权重评分,i属于N,j的值小于或等于i的值;
第六计算单元、用于根据剩余的每条所述第一染色体被选择的概率值,计算剩余的每条所述第一染色体的所处区间,其中,计算公式为:
其中,所述q(xi)为第i条剩余的所述第一染色体的积累概率值,为将第一染色体数组中剩余的第j条至第i条所述第一染色体被选择的概率值相加;
第一选取单元、用于选取第一随机数,其中,所述第一随机数的选取个数至少为两个,其中,所述第一随机数的选取范围从零至所述第一染色体数组的数组权重评分的范围内选取;
第一查找单元、用于查找至少两个所述第一随机数对应的剩余的所述第一染色体的所处区间;
第二选取单元、用于选取至少两个剩余的所述第一染色体的所处区间内对应的剩余的第一染色体,并将两个剩余的所述第一染色体作为父本;
第一形成单元、用于随机选取一个交叉点,将作为父本的两个所述第一染色体进行交叉、组合,形成第二染色体,并统计形成的第二染色体的数目,其中,所述交叉点的选取范围在零至剩余的所述第一染色体中各目标节点的总数范围之内;
第一判断单元、用于判断所述第二染色体的数目与预设值是否相等;
返回单元、用于若所述第二染色体的数目与所述预设值不相等,返回到所述选取第一随机数的步骤;
第二形成单元、用于若所述第二染色体的数目与所述预设值相等,则对所述第二染色体数目进行整和,形成第二染色体数组。
在一个实施例中,调度模块6,包括:
变异单元、用于对所述第二染色体数组中的多条第二染色体进行变异,得到多条变异染色体,将多条所述变异染色体组成变异染色体数组;
调度单元、用于基于所述变异染色体数组,完成软负载对若干个任务的调度。
在一个实施例中,变异单元包括:
第一获取子单元、用于获取预先设置的变异率;
第二获取子单元、用于获取所述第二染色体数组中每条所述第二染色体中所述目标节点的总数与每个目标节点所对应的编号,其中,所述编号按照前后顺序依次排列;
选取子单元、用于根据所述变异率随机选取与所述变异率对应的任意个第二随机数,其中,所述第二随机数的范围从零至每条所述第二染色体中目标节点的总数的范围内进行选取;
第三获取子单元、用于获取任意个所述第二随机数对应的编号,对所述编号对应的所述目标节点进行变异,得到变异染色体;
整合子单元、用于对所述变异染色体进行整合,得到变异染色体数组。
在一个实施例中,所述基于遗传算法模型的软负载调度装置,还包括:
第五获取单元、用于获取软负载当前的并发度与处理下游集群的处理能力;
第二判断单元、用于判断所述并发度与所述处理能力是否达到预设阈值;
切换单元、用于若达到预设阈值,切换所述软负载的运行模式。
上述各单元、模块均是对应执行上述基于遗传算法模型的软负载调度装置。
如图3所示,本发明还提供了一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于遗传算法模型的软负载调度的过程需要的所有数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现基于遗传算法模型的软负载调度方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一个基于遗传算法模型的软负载调度方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种基于遗传算法模型的软负载调度方法,其特征在于,包括以下步骤:
获取不同的目标节点,以及不同的所述目标节点被调用的消耗时间RT;
将每个所述目标节点与所述目标节点对应的RT组成基因片段,得到若干所述基因片段;
基于若干所述基因片段,组成多条第一染色体,并将多条所述第一染色体组成第一染色体数组;其中,一条所述第一染色体由任意多个所述基因片段组成;
基于所述第一染色体数组中每条第一染色体的所述目标节点和所述RT,计算所述第一染色体数组中每条第一染色体的适应度值,其中,所述适应度值用于指示所述第一染色体中所述目标节点的性能评估指标;
将所述适应度值小于适应阈值的第一染色体从所述第一染色体数组中删除,并将剩余的所述第一染色体依次进行随机交叉、随机组合,形成第二染色体数组;
基于所述第二染色体数组,完成软负载对若干个任务的调度;
在所述获取不同的目标节点,以及不同的所述目标节点被调用的消耗时间RT的步骤之前,包括;
获取与上游任务端对应的下游集群中的多个解集,其中,每个所述解集中包括多个节点,所述节点用于调用任务;
随机获取每个所述解集中的一个节点,将多个随机获取的所述节点组成初代种群;
将所述初代种群中的所有所述节点均作为所述目标节点进行调用;
所述基于所述第一染色体数组中每条第一染色体的所述目标节点和所述RT,计算所述第一染色体数组中每条第一染色体的适应度值的步骤,包括:
获取CPU指标的权重与每条所述第一染色体中每一个所述目标节点对应RT的权重,其中,所述CPU指标为所述下游集群中所述解集对应的多个宿主机的CPU指标;
计算每条所述第一染色体中每一个所述目标节点的权重评分,其中,计算公式为:
L(Bi)=R1*Lcpu(Bi)+R2*Lr(Bi);
其中,R1表示所述解集对应的每一个所述宿主机的CPU指标的权重,R2为每一个所述目标节点对应的RT的权重,Lcpu(Bi)为每一个所述目标节点对应的宿主机的编号,Lr(Bi)为每一个所述RT对应的宿主机的编号;
根据每一个所述目标节点的权重评分,计算与所述目标节点对应的所述第一染色体的总权重评分,得到每条所述第一染色体的适应度值,其中,计算公式为:
Ltotal=∑L(Bi);
其中,所述∑L(Bi)为将每一条所述第一染色体中的所有所述目标节点对应的权重评分相加,所述Ltotal为每一条所述第一染色体中所有所述目标节点权重评分相加的总和。
2.根据权利要求1所述的基于遗传算法模型的软负载调度方法,其特征在于,所述将所述初代种群中的所有所述节点均作为所述目标节点进行调用的步骤,包括:
获取预先设置的矩阵的列数与行数,其中,所述列数表征种群总数,所述行数表征所述节点的总数;
将所述列数与所述行数相乘,得到待处理任务的总数;
根据待处理任务的总数,将所述初代种群中的所有节点作为目标节点放入所述矩阵中,以完成对所有所述待处理任务的分配,其中,每一个待处理的任务均对应一个所述目标节点;
所述获取不同的目标节点的步骤,包括:
到放入所述目标节点的所述矩阵中获取不同的所述目标节点。
3.根据权利要求1所述的基于遗传算法模型的软负载调度方法,其特征在于,所述将所述适应度值小于适应阈值的第一染色体从所述第一染色体数组中删除,并将剩余的所述第一染色体进行随机交叉、随机组合,形成第二染色体数组的步骤包括:
比较所述第一染色体所对应的总权重评分与适应阈值,得到小于适应阈值的所述第一染色体,将小于适应阈值的所述第一染色体从所述第一染色体数组中删除;
将剩余的每条所述第一染色体所对应的总权重评分相加,得到第一染色体数组的数组权重评分;
根据剩余的所述第一染色体所对应的总权重评分和所述第一染色体数组的数组权重评分,通过轮盘赌选择算法计算剩余的每条所述第一染色体被选择的概率值,其中,计算公式为:
其中,P(xi)为第i条剩余的所述第一染色体被选择的概率,f(xi)为第i条剩余的所述第一染色体对应的总权重评分,为所述第一染色体数组的数组权重评分,i属于N,j的值小于或等于i的值;
根据剩余的每条所述第一染色体被选择的概率值,计算剩余的每条所述第一染色体的所处区间,其中,计算公式为:
其中,所述q(xi)为第i条剩余的所述第一染色体的积累概率值,为将第一染色体数组中剩余的第j条至第i条所述第一染色体被选择的概率值相加;
选取第一随机数,其中,所述第一随机数的选取个数至少为两个,其中,所述第一随机数的选取范围从零至所述第一染色体数组的数组权重评分的范围内选取;
查找至少两个所述第一随机数对应的剩余的所述第一染色体的所处区间;
选取至少两个剩余的所述第一染色体的所处区间内对应的剩余的第一染色体,并将两个剩余的所述第一染色体作为父本;
随机选取一个交叉点,将作为父本的两个所述第一染色体进行交叉、组合,形成第二染色体,并统计形成的第二染色体的数目,其中,所述交叉点的选取范围在零至剩余的所述第一染色体中各目标节点的总数范围之内;
判断所述第二染色体的数目与预设值是否相等;
若所述第二染色体的数目与所述预设值不相等,返回到所述选取第一随机数的步骤;
若所述第二染色体的数目与所述预设值相等,则对所述第二染色体数目进行整和,形成第二染色体数组。
4.根据权利要求3所述的基于遗传算法模型的软负载调度方法,其特征在于,所述基于所述第二染色体数组,完成软负载对若干个任务的调度的步骤,包括:
对所述第二染色体数组中的多条第二染色体进行变异,得到多条变异染色体,将多条所述变异染色体组成变异染色体数组;
基于所述变异染色体数组,完成软负载对若干个任务的调度。
5.根据权利要求4所述的基于遗传算法模型的软负载调度方法,其特征在于,所述对所述第二染色体数组中的多条第二染色体进行变异,得到多条变异染色体,将多条所述变异染色体组成变异染色体数组的步骤包括:
获取预先设置的变异率;
获取所述第二染色体数组中每条所述第二染色体中所述目标节点的总数与每个目标节点所对应的编号,其中,所述编号按照前后顺序依次排列;
根据所述变异率随机选取与所述变异率对应的任意个第二随机数,其中,所述第二随机数的范围从零至每条所述第二染色体中目标节点的总数的范围内进行选取;
获取任意个所述第二随机数对应的编号,对所述编号对应的所述目标节点进行变异,得到变异染色体;
对所述变异染色体进行整合,得到变异染色体数组。
6.一种基于遗传算法模型的软负载调度装置,用于实现权利要求1-5中任意一项所述的方法,其特征在于,包括:
获取模块:用于获取不同的目标节点,以及不同的所述目标节点被调用的消耗时间RT;
第一组成模块:用于将每个所述目标节点与所述目标节点对应的RT组成基因片段,得到若干基因片段;
第二组成模块:用于基于若干所述基因片段,组成多条第一染色体,并将多条所述第一染色体组成第一染色体数组;其中,一条所述第一染色体由任意多个所述基因片段组成;
计算模块:用于基于所述第一染色体数组中每条第一染色体的所述目标节点和所述RT,计算所述第一染色体数组中每条第一染色体的适应度值,其中,所述适应度值用于指示所述第一染色体中所述目标节点的性能评估指标;
形成模块:用于将所述适应度值小于适应阈值的第一染色体从所述第一染色体数组中删除,并将剩余的所述第一染色体进行随机交叉、随机组合,形成第二染色体数组;
调度模块:用于基于所述第二染色体数组,完成软负载对若干个任务的调度。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述基于遗传算法模型的软负载调度方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述基于遗传算法模型的软负载调度的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110872236.4A CN113641471B (zh) | 2021-07-30 | 2021-07-30 | 基于遗传算法模型的软负载调度方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110872236.4A CN113641471B (zh) | 2021-07-30 | 2021-07-30 | 基于遗传算法模型的软负载调度方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113641471A CN113641471A (zh) | 2021-11-12 |
CN113641471B true CN113641471B (zh) | 2024-02-02 |
Family
ID=78419060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110872236.4A Active CN113641471B (zh) | 2021-07-30 | 2021-07-30 | 基于遗传算法模型的软负载调度方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113641471B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114518937B (zh) * | 2022-01-27 | 2022-11-04 | 广州鼎甲计算机科技有限公司 | 一种虚拟机备份调度方法、系统、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016165392A1 (zh) * | 2015-04-17 | 2016-10-20 | 华南理工大学 | 一种基于遗传算法的云计算资源调度方法 |
CN107273209A (zh) * | 2017-06-09 | 2017-10-20 | 北京工业大学 | 基于最小生成树聚类改进遗传算法的Hadoop任务调度方法 |
CN107273197A (zh) * | 2017-06-14 | 2017-10-20 | 北京工业大学 | 基于正交实验改进的谱聚类遗传算法的Hadoop任务调度方法 |
CN110109753A (zh) * | 2019-04-25 | 2019-08-09 | 成都信息工程大学 | 基于多维度约束遗传算法的资源调度方法及系统 |
CN112380016A (zh) * | 2020-11-30 | 2021-02-19 | 华南理工大学 | 基于改进遗传算法的云计算资源负载均衡调度方法及应用 |
-
2021
- 2021-07-30 CN CN202110872236.4A patent/CN113641471B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016165392A1 (zh) * | 2015-04-17 | 2016-10-20 | 华南理工大学 | 一种基于遗传算法的云计算资源调度方法 |
CN107273209A (zh) * | 2017-06-09 | 2017-10-20 | 北京工业大学 | 基于最小生成树聚类改进遗传算法的Hadoop任务调度方法 |
CN107273197A (zh) * | 2017-06-14 | 2017-10-20 | 北京工业大学 | 基于正交实验改进的谱聚类遗传算法的Hadoop任务调度方法 |
CN110109753A (zh) * | 2019-04-25 | 2019-08-09 | 成都信息工程大学 | 基于多维度约束遗传算法的资源调度方法及系统 |
CN112380016A (zh) * | 2020-11-30 | 2021-02-19 | 华南理工大学 | 基于改进遗传算法的云计算资源负载均衡调度方法及应用 |
Also Published As
Publication number | Publication date |
---|---|
CN113641471A (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sayadi et al. | Firefly-inspired algorithm for discrete optimization problems: An application to manufacturing cell formation | |
CN104572297A (zh) | 一种基于遗传算法的Hadoop作业调度方法 | |
CN113641471B (zh) | 基于遗传算法模型的软负载调度方法、装置、设备及介质 | |
CN115660380B (zh) | 货到人拣选的订单处理方法及装置 | |
CN111260288B (zh) | 订单管理方法、装置、介质及电子设备 | |
Tanimizu et al. | Evolutional reactive scheduling for agile manufacturing systems | |
CN110633784B (zh) | 一种多规则人工蜂群改进算法 | |
CN114862065B (zh) | 社工任务规划方法、装置、电子设备及存储介质 | |
CN116822759A (zh) | 旅行商问题求解方法、装置、设备及存储介质 | |
CN110533218A (zh) | 一种基于数据挖掘的居民用户多目标优化用电策略及系统 | |
CN106709572A (zh) | 一种数据处理方法及设备 | |
US8417652B2 (en) | System and method for effecting optimization of a sequential arrangement of items | |
CN111612419A (zh) | 电力申报数据的处理方法、装置和计算机设备 | |
CN116611506B (zh) | 用户分析模型训练方法、用户标签确定方法和装置 | |
CN111178637A (zh) | 一种电网短期负荷预测方法和装置 | |
CN110059806A (zh) | 一种基于幂律函数的多阶段加权网络社团结构检测方法 | |
CN109445914A (zh) | 一种面向并发的调度方法及系统 | |
CN116382926B (zh) | 针对推荐系统的算力优化的方法和装置 | |
TWI778924B (zh) | 大數據檢索方法及系統 | |
CN112559859B (zh) | 资源推荐方法、装置、电子设备及机器可读存储介质 | |
CN117834715A (zh) | 服务访问处理方法、装置、计算机设备和存储介质 | |
Sargsian et al. | Development of an algorithm for the distribution of applications for the digital transformation of the service business | |
IL294024A (en) | Model-independent feature selection | |
CN117875619A (zh) | 作业车间调度方法、装置、设备、存储介质和程序产品 | |
CN116541165A (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 |