CN117311993B - 一种云计算负载均衡方法及系统 - Google Patents
一种云计算负载均衡方法及系统 Download PDFInfo
- Publication number
- CN117311993B CN117311993B CN202311598157.4A CN202311598157A CN117311993B CN 117311993 B CN117311993 B CN 117311993B CN 202311598157 A CN202311598157 A CN 202311598157A CN 117311993 B CN117311993 B CN 117311993B
- Authority
- CN
- China
- Prior art keywords
- scheme
- task allocation
- task
- simulation
- cloud computing
- 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 47
- 238000004088 simulation Methods 0.000 claims abstract description 428
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 25
- 241000282485 Vulpes vulpes Species 0.000 claims abstract description 24
- 235000008954 quail grass Nutrition 0.000 claims abstract description 24
- 238000004364 calculation method Methods 0.000 claims description 63
- 230000000007 visual effect Effects 0.000 claims description 43
- 230000006978 adaptation Effects 0.000 claims description 37
- 238000009826 distribution Methods 0.000 claims description 32
- 238000012549 training Methods 0.000 claims description 28
- 238000005457 optimization Methods 0.000 claims description 19
- 239000011159 matrix material Substances 0.000 claims description 12
- 238000003860 storage Methods 0.000 claims description 9
- 230000004931 aggregating effect Effects 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 238000002360 preparation method Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 21
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000007418 data mining Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009191 jumping Effects 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及云计算领域,更具体的说,它涉及一种云计算负载均衡方法及系统。一种云计算负载均衡系统,包括:云计算任务信息获取模块、虚拟机信息获取模块、最优任务分配方案输出模块和云计算任务分配模块。本发明通过改进后的红狐算法对任务分配方案进行模拟,在具备红狐算法较高收敛速度的前提下,还能够避免在模拟过程中陷入局部最优解的情况,从而实现更快的云计算负载均衡,避免在模拟云计算负载均衡方案时花费较多时间影响用户体验。
Description
技术领域
本发明涉及云计算领域,更具体的说,它涉及一种云计算负载均衡方法及系统。
背景技术
云计算是近年来发展迅速的一种计算模式,通过虚拟化技术将各种零散资源进行整合,用户可以按照自己的需求来租用自己想要的资源。随着云计算业务规模的不断扩大,针对云计算的服务质量要求越来越高,特别是任务的完成时间是影响用户体验的一大重要因素,在此基础上,便提出了负载均衡的概念,即通过对云计算资源的合理分配来减少任务的完成时间。但是传统的调度算法已经无法满足对庞大数据量的云计算任务的负载均衡。
发明内容
本发明提供一种云计算负载均衡方法及系统,通过改进后的红狐算法对任务分配方案进行模拟,在具备红狐算法较高收敛速度的前提下,还能够避免在模拟过程中陷入局部最优解的情况,从而实现更快的云计算负载均衡,避免在模拟云计算负载均衡方案时花费较多时间影响用户体验。
一种云计算负载均衡方法,包括:
获取用户提交的云计算任务申请;根据云计算任务申请将云计算任务分成M个云计算子任务Tm,m=1,2,3,……M,m为云计算子任务Tm对应的云计算子任务编号,同时获取每个云计算子任务的任务计算量Qm,且从M个云计算子任务Tm按照对应的任务计算量Qm从大到小进行排列;
获取N个云计算虚拟机对应的虚拟机编号n,n=1,2,3,……N;同时获取虚拟机编号n对应的虚拟机计算能力Cn;
在云计算子任务Tm、任务计算量Qm、虚拟机编号n和虚拟机计算能力Cn的基础上通过改进后的红狐优化算法对任务分配方案进行模拟,并输出最优任务分配方案;
基于最优任务分配方案将M个云计算子任务Tm分配至N个云计算虚拟机。
作为本发明优选的一个方面,云计算子任务Tm、任务计算量Qm、虚拟机编号n和虚拟机计算能力Cn的基础上通过改进后的红狐优化算法对任务分配方案进行模拟,具体包括如下步骤:
S1:基于云计算子任务Tm和虚拟机编号n建立模拟种群集合,模拟种群集合中存储E个任务分配模拟方案Fe,e=1,2,3,……E,e为任务分配模拟方案编号;任务分配模拟方案Fe的存储形式为,其中/>指的是第m个云计算子任务Tm分配的虚拟机编号;
S2:设置最大迭代次数G,并设置g=1,g用于记录迭代次数;
S3:计算模拟种群集合中E个任务分配模拟方案Fe的适应度值δe,并选择E个任务分配模拟方案Fe中适应度值δe最大的任务分配模拟方案Fe作为全局最优任务分配模拟方案Fbest;
S4:基于E个任务分配模拟方案Fe的适应度值δe对模拟种群集合中的E个任务分配模拟方案Fe进行更新;
S5:对更新后的模拟种群集合中的E个任务分配模拟方案Fe计算适应度值δe,选择更新后的模拟种群集合中的适应度值δe最大的任务分配模拟方案Fe,记为待选任务分配模拟方案Fchoose,将待选任务分配模拟方案Fchoose的适应度值δchoose与全局最优任务分配模拟方案Fbest的适应度值δbest进行比较,若是待选任务分配模拟方案Fchoose的适应度值δchoose高于全局最优任务分配模拟方案Fbest的适应度值δbest,将待选任务分配模拟方案Fchoose作为新的全局最优任务分配模拟方案Fbest;否则,无操作;
S6:判断“g<G”是否成立,若是“g<G”成立,将g+1赋值给g,回到S4;若是“g<G”不成立,进入S7;
S7:将全局最优任务分配模拟方案Fbest作为最优任务分配方案进行输出。
作为本发明优选的一个方面,模拟种群集合建立的步骤如下:
S1.1:建立一个空的任务模拟分配集合H,任务模拟分配集合H存储形式为{h1,h2…hm…hM},hm初始为0,从任务模拟分配集合H逐个选择hm,针对选择的hm,从N个虚拟机编号n随机选择一个虚拟机编号n对hm进行重新赋值;当任务模拟分配集合H中所有元素hm都被重新赋值后,将任务模拟分配集合H作为任务分配模拟方案Fe进行输出;
S1.2:重复E次步骤S1.1,获得E个任务分配模拟方案Fe,并将E个任务分配模拟方案Fe组成模拟种群集合。
作为本发明优选的一个方面,计算任务分配模拟方案Fe的适应度值δe包括如下步骤:由于在进行云计算任务负载均衡时,更多考虑的是任务完成时间,因此任务分配模拟方案Fe的适应度值δe也是基于任务完成时间进行计算;根据任务分配模拟方案Fe建立任务分配矩阵AMN,任务分配矩阵AMN内部的任务分配数值amn表示任务分配矩阵AMN内第m行第n列的数据,建立方式如下:从任务分配模拟方案Fe中逐个选择元素,并提取元素/>对应的虚拟机编号n和云计算子任务编号m,将虚拟机编号n和云计算子任务编号m对应的任务分配数值amn赋值为1,当任务分配模拟方案Fe中所有元素/>被选择完毕后,完成任务分配矩阵AMN的建立;适应度值δe的计算公式如下:/> 。
作为本发明优选的一个方面,基于E个任务分配模拟方案Fe的适应度值δe对模拟种群集合中的E个任务分配模拟方案Fe进行更新,具体包括如下步骤:
S4.1:从模拟种群集合中逐个选择任务分配模拟方案Fe,针对选择的任务分配模拟方案Fe执行第一次更新:
S4.1.1:计算选择的任务分配模拟方案Fe与其余的任务分配模拟方案之间欧式距离dej,其中j=1,2,3,……E,且j≠e;将满足条件“dej<visual”的任务分配模拟方案Fj组成第一可视集合U1,其中visual为视野参数,基于第一可视集合U1建立中心任务分配模拟方案Fcenter,中心任务分配模拟方案Fcenter的存储形式为,其中/>为第一可视集合U1中所有任务分配模拟方案Fj中第m个云计算子任务Tm上出现次数最多的虚拟机编号;判断“”是否成立,其中/>为中心任务分配模拟方案Fcenter的适应度值,为选择的任务分配模拟方案Fe的适应度值,/>为第一可视集合U1中元素的总个数,/>为拥挤因子;若是“/>”成立,进入S4.1.2;若是“/>”不成立,进入S4.1.3;
S4.1.2:统计选择的任务分配模拟方案Fe与中心任务分配模拟方案Fcenter中对应云计算子任务Tm上分配的虚拟机编号不一致的云计算子任务Tm个数ε1,随机整数生成函数生成一个1至ε1之间的随机整数η1,同时通过随机整数生成函数生成一个1至M之间的随机整数μ1,将中心任务分配模拟方案Fcenter中第μ1个虚拟机编号至第μ1+η1个虚拟机编号对选择的任务分配模拟方案Fe中第μ1个虚拟机编号至第μ1+η1个虚拟机编号进行替换;判断“”是否成立,其中/>为替换后的任务分配模拟方案Fe的适应度值,若是“”成立,保留替换后的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第一次更新;若是“/>”不成立,不保留对任务分配模拟方案Fe的替换;
S4.1.3:统计选择的任务分配模拟方案Fe与全局最优任务分配模拟方案Fbest中对应云计算子任务Tm上分配的虚拟机编号不一致的云计算子任务Tm个数ε2,随机整数生成函数生成一个1至ε2之间的随机整数η1,同时通过随机整数生成函数生成一个1至M之间的随机整数μ2,将全局最优任务分配模拟方案Fbest中第μ2个虚拟机编号至第μ2+η2个虚拟机编号对选择的任务分配模拟方案Fe中第μ2个虚拟机编号至第μ2+η2个虚拟机编号进行替换,判断“”是否成立,若是“/>”成立,保留替换后的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第一次更新;若是“/>”不成立,不保留对任务分配模拟方案Fe的替换;
S4.2:从经过第一次更新的模拟种群集合中逐个选择任务分配模拟方案Fe,针对选择的任务分配模拟方案Fe执行第二次更新:
S4.2.1:通过随机函数生成一个0至1之间的随机数α,判断“α>β”是否成立,β为局部搜索允许阈值;若是“α>β”成立,进入S4.2.2;否则,无操作;
S4.2.2:计算选择的任务分配模拟方案Fe与其余的任务分配模拟方案之间欧式距离dek,其中k=1,2,3,……E,且k≠e,将满足条件“dek<visual”的任务分配模拟方案Fk组成第二可视集合U2,遍历选择的任务分配模拟方案Fe,针对选择的每一个虚拟机编号,从第二可视集合U2中所有任务分配模拟方案Fk中的第m个云计算子任务Tm分配的虚拟机编号中随机选择一个虚拟机编号/>对任务分配模拟方案Fe中的虚拟机编号进行替换,当任务分配模拟方案Fe中的所有虚拟机编号/>替换完毕后,计算替换后的任务分配模拟方案Fe的适应度值/>,判断“/>”是否成立,若是“/>”成立,保留替换后的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第二次更新;若是“/>”不成立,不保留对任务分配模拟方案Fe的替换;
S4.3:从经过第二次更新的模拟种群集合中逐个选择任务分配模拟方案Fe,针对选择的任务分配模拟方案Fe执行第三次更新:
S4.3.1:计算选择的任务分配模拟方案Fe与其余的任务分配模拟方案之间欧式距离dei,其中i=1,2,3,……E,且i≠e,将满足条件“dei<visual”的任务分配模拟方案Fk组成第三可视集合U3,选择第三可视集合U3中适应度值最大的任务分配模拟方案,记为局部最优任务分配模拟方案Fpart,判断“”是否成立,其中/>为局部最优任务分配模拟方案Fpart的适应度值,/>为第三可视集合U3中元素的总个数;若是“”成立,进入S4.3.2;否则,无操作;
S4.3.2:统计选择的任务分配模拟方案Fe与局部最优任务分配模拟方案Fpart中对应云计算子任务Tm上分配的虚拟机编号不一致的云计算子任务Tm个数ε3,随机整数生成函数生成一个1至ε3之间的随机整数η3,同时通过随机整数生成函数生成一个1至M之间的随机整数μ3,将局部最优任务分配模拟方案Fpart中第μ3个虚拟机编号至第μ3+η3个虚拟机编号对选择的任务分配模拟方案Fe中第μ3个虚拟机编号至第μ3+η3个虚拟机编号进行替换,判断“”是否成立,若是“/>”成立,保留替换后的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第三次更新;若是“/>”不成立,不保留对任务分配模拟方案Fe的替换;
S4.4:将经过第三次更新的模拟种群集合中的任务分配模拟方案Fe按照适应度值δe从小到大排序,将经过第三次更新的模拟种群集合中的适应度值最大的两个任务分配模拟方案Fe分别记为第一父本任务分配模拟方案Fmale1和第二父本任务分配模拟方案Fmale2,且满足第一父本任务分配模拟方案Fmale1的适应度值δmale1高于第二父本任务分配模拟方案Fmale2的适应度值δmale2,再选择前r个任务分配模拟方案Fe组成游离更新集合,从游离更新集合中逐个选择任务分配模拟方案Fe,针对选择的任务分配模拟方案Fe执行第四次更新:
S4.4.1:通过随机函数生成一个0至1之间的随机数τ,判断“τ<υ”是否成立,其中υ为新个体生成阈值;若是“τ<υ”成立,进入S4.4.2;否则,无操作;
S4.4.2:通过随机整数函数生成一个1至τM之间的随机整数η4,同时通过随机整数生成函数生成一个1至M之间的随机整数μ4,将第二父本任务分配模拟方案Fmale2中第μ4个虚拟机编号至第μ4+η4个虚拟机编号对第一父本任务分配模拟方案Fmale1中第μ3个虚拟机编号至第μ3+η3个虚拟机编号进行替换,构建新的第一父本任务分配模拟方案Fmale1,并将新的第一父本任务分配模拟方案Fmale1替换选择的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第四次更新。
作为本发明优选的一个方面,还包括对模拟种群集合的优化,具体步骤如下:
在每一次执行对任务分配方案进行模拟时,记录任务计算量数据集合φξ和对应的最优任务分配方案ψξ,ξ=1,2,3,……J,J为任务计算量数据集合φξ的总数量;任务计算量数据集合φξ包括从大到小进行排列的任务计算量Qm;将所有任务计算量数据集合φξ和对应的最优任务分配方案ψξ组成任务分配模拟方案匹配库,任务分配模拟方案匹配库中任务计算量数据集合φξ和对应的最优任务分配方案ψξ一一对应;
在云计算子任务Tm、任务计算量Qm、虚拟机编号n和虚拟机计算能力Cn的基础上通过改进后的红狐优化算法对任务分配方案进行模拟之前,判断任务分配模拟方案匹配库中是否为空,若是任务分配模拟方案匹配库中为空,直接对任务分配方案进行模拟;若是任务分配模拟方案匹配库中不为空,将任务计算量Qm从大到小进行排列,构建待模拟任务计算量数据集合φstay,将待模拟任务计算量数据集合φstay与任务分配模拟方案匹配库中所有的任务计算量数据集合φξ计算相似度σξ,将满足“σξ>σconfidence”的任务计算量数据集合φξ对应的最优任务分配方案ψξ组成种群待选集合,其中σconfidence为相似度阈值;
在云计算子任务Tm、任务计算量Qm、虚拟机编号n和虚拟机计算能力Cn的基础上通过改进后的红狐优化算法对任务分配方案进行模拟时,将种群待选集合中的所有最优任务分配方案ψξ作为任务分配模拟方案Fe存入模拟种群集合中,通过步骤S1.1至步骤S1.2生成E-B个任务分配模拟方案Fe,B为种群待选集合中的所有最优任务分配方案ψξ的总个数,将E-B个任务分配模拟方案Fe与B个最优任务分配方案ψξ组成模拟种群集合。
作为本发明优选的一个方面,还包括对最优任务分配方案的直接输出,具体步骤如下:
当获取到用户提交的云计算任务申请时,将此云计算任务申请对应的所有任务计算量Qm从大到小进行排列组成待计算任务计算量数据集合,再将待计算任务计算量数据集合送入训练好的最优任务分配方案预测模型进行计算,最优任务分配方案预测模型基于BP神经网络进行建立,输出预测任务分配方案,计算预测任务分配方案对应的适应度值,若是预测任务分配方案对应的适应度值高于预设适应度值,则将预测任务分配方案作为最优任务分配方案进行输出;否则,对任务分配方案进行模拟;
对最优任务分配方案预测模型的训练包括如下步骤:获取任务分配模拟方案匹配库中所有的任务计算量数据集合φξ和对应的最优任务分配方案ψξ,将任务计算量数据集合φξ和对应的最优任务分配方案ψξ组成训练样本,再将所有训练样本组成训练样本集;将训练样本集送入初始化参数的最优任务分配方案预测模型进行训练,期间以最优任务分配方案ψξ作为目标输出,计算损失值,若是损失值在预设范围内,输出训练好的最优任务分配方案预测模型;否则,继续迭代训练。
一种云计算负载均衡系统,包括:
云计算任务信息获取模块,用于获取用户提交的云计算任务申请,并根据云计算任务申请将云计算任务分成云计算子任务,同时获取每个云计算子任务的任务计算量;
虚拟机信息获取模块,用于获取云计算虚拟机对应的虚拟机编号,同时获取虚拟机编号对应的虚拟机计算能力;
最优任务分配方案输出模块,用于在云计算子任务、任务计算量、虚拟机编号和虚拟机计算能力的基础上通过改进后的红狐优化算法对任务分配方案进行模拟,并输出最优任务分配方案;
云计算任务分配模块,用于基于最优任务分配方案将云计算子任务分配至云计算虚拟机。
作为本发明优选的一个方面,还包括:
任务分配模拟方案匹配库管理模块,用于在每一次执行对任务分配方案进行模拟时,记录任务计算量数据集合和对应的最优任务分配方案,并将所有任务计算量数据集合和对应的最优任务分配方案组成任务分配模拟方案匹配库;
最优任务分配方案预测模型管理模块,用于训练和存储最优任务分配方案预测模型管理;
预测任务分配方案输出模块,用于通过最优任务分配方案预测模型输出预测任务分配方案;
预测任务分配方案判断模块,用于判断预测任务分配方案对应的适应度值是否高于预设适应度值,若是预测任务分配方案对应的适应度值高于预设适应度值,预设适应度值人为设定,则将预测任务分配方案作为最优任务分配方案进行输出;否则,对任务分配方案进行模拟。
本发明具有以下优点:
1、本发明通过改进后的红狐算法对任务分配方案进行模拟,在具备红狐算法较高收敛速度的前提下,还能够避免在模拟过程中陷入局部最优解的情况,从而实现更快的云计算负载均衡,避免在模拟云计算负载均衡方案时花费较多时间影响用户体验。
2、本发明通过从任务分配模拟方案匹配库中查找与当前云计算任务申请对应的云计算子任务相似的云计算任务,并且把查找到的云计算任务对应的最优任务分配方案作为初代模拟种群集合中的任务分配模拟方案,提升初代模拟种群集合的质量,从而减少对任务分配方案进行模拟所花费的时间。
3、本发明通过最优任务分配方案预测模型学习任务计算量数据集合与最优任务分配方案之间的映射关系,在云计算任务申请较多时,直接将当前获取的云计算任务申请对应的待计算任务计算量数据集合输入训练好的最优任务分配方案预测模型,输出预测任务分配方案,避免每一个云计算任务申请都要对任务分配方案进行模拟,减少了对云计算任务申请的处理时间,进一步提升用户体验。
附图说明
图1为本发明实施例采用的云计算负载均衡系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例1,一种云计算负载均衡方法,包括:
获取用户提交的云计算任务申请,云计算任务申请可以是对于深度学习模型的训练,对大数据的数据挖掘等;根据云计算任务申请将云计算任务分成M个云计算子任务Tm,m=1,2,3,……M,m为云计算子任务Tm对应的云计算子任务编号,同时获取每个云计算子任务的任务计算量Qm,且从M个云计算子任务Tm按照对应的任务计算量Qm从大到小进行排列;
获取N个云计算虚拟机对应的虚拟机编号n,n=1,2,3,……N,虚拟机为一个具备完整系统的虚拟运行系统,可以为VirtualBox和vmware workstation等;同时获取虚拟机编号n对应的虚拟机计算能力Cn;
在云计算子任务Tm、任务计算量Qm、虚拟机编号n和虚拟机计算能力Cn的基础上通过改进后的红狐优化算法对任务分配方案进行模拟,并输出最优任务分配方案;
基于最优任务分配方案将M个云计算子任务Tm分配至N个云计算虚拟机,实现云计算任务的负载均衡。
本申请通过改进后的红狐算法对任务分配方案进行模拟,在具备红狐算法较高收敛速度的前提下,还能够避免在模拟过程中陷入局部最优解的情况,从而实现更快的云计算负载均衡,避免在模拟云计算负载均衡方案时花费较多时间影响用户体验。
在云计算子任务Tm、任务计算量Qm、虚拟机编号n和虚拟机计算能力Cn的基础上通过改进后的红狐优化算法对任务分配方案进行模拟,具体包括如下步骤:
S1:基于云计算子任务Tm和虚拟机编号n建立模拟种群集合,模拟种群集合中存储E个任务分配模拟方案Fe,e=1,2,3,……E,e为任务分配模拟方案编号;任务分配模拟方案Fe的存储形式为,其中/>指的是第m个云计算子任务Tm分配的虚拟机编号,例如云计算子任务Tm分别为云计算子任务1、云计算子任务2、云计算子任务3、云计算子任务4和云计算子任务5,虚拟机编号n分别为虚拟机编号1、虚拟机编号2和虚拟机编号3;则任务分配模拟方案{2,3,2,1,1}表示虚拟机编号1对应的云计算虚拟机上分配了云计算子任务4,虚拟机编号2对应的云计算虚拟机上分配了云计算子任务1和云计算子任务3,虚拟机编号3对应的云计算虚拟机上分配了云计算子任务2;
模拟种群集合建立的步骤如下:
S1.1:建立一个空的任务模拟分配集合H,任务模拟分配集合H存储形式为{h1,h2…hm…hM},hm初始为0,从任务模拟分配集合H逐个选择hm,针对选择的hm,从N个虚拟机编号n随机选择一个虚拟机编号n对hm进行重新赋值;当任务模拟分配集合H中所有元素hm都被重新赋值后,将任务模拟分配集合H作为任务分配模拟方案Fe进行输出,对任务模拟分配集合的建立过程便是对云计算任务分配的模拟过程,只是此时的模拟过程是随机的;
S1.2:重复E次步骤S1.1,获得E个任务分配模拟方案Fe,并将E个任务分配模拟方案Fe组成模拟种群集合;
S2:设置最大迭代次数G,并设置g=1,g用于记录迭代次数;
S3:计算模拟种群集合中E个任务分配模拟方案Fe的适应度值δe,并选择E个任务分配模拟方案Fe中适应度值δe最大的任务分配模拟方案Fe作为全局最优任务分配模拟方案Fbest;
计算任务分配模拟方案Fe的适应度值δe包括如下步骤:由于在进行云计算任务负载均衡时,更多考虑的是任务完成时间,因此任务分配模拟方案Fe的适应度值δe也是基于任务完成时间进行计算;根据任务分配模拟方案Fe建立任务分配矩阵AMN,任务分配矩阵AMN内部的任务分配数值amn表示任务分配矩阵AMN内第m行第n列的数据,建立方式如下:从任务分配模拟方案Fe中逐个选择元素,并提取元素/>对应的虚拟机编号n和云计算子任务编号m,将虚拟机编号n和云计算子任务编号m对应的任务分配数值amn赋值为1,当任务分配模拟方案Fe中所有元素/>被选择完毕后,完成任务分配矩阵AMN的建立;适应度值δe的计算公式如下:/> ;
即基于任务分配模拟方案Fe执行云计算任务分配后,所有虚拟机执行分配好的云计算子任务所花费时间的最大值的倒数作为适应度值;
S4:基于E个任务分配模拟方案Fe的适应度值δe对模拟种群集合中的E个任务分配模拟方案Fe进行更新;
基于E个任务分配模拟方案Fe的适应度值δe对模拟种群集合中的E个任务分配模拟方案Fe进行更新,具体包括如下步骤:
S4.1:从模拟种群集合中逐个选择任务分配模拟方案Fe,针对选择的任务分配模拟方案Fe执行第一次更新:
S4.1.1:计算选择的任务分配模拟方案Fe与其余的任务分配模拟方案之间欧式距离dej,其中j=1,2,3,……E,且j≠e,需要说明的是,选择的任务分配模拟方案Fe与其余的任务分配模拟方案之间欧式距离dej的计算方式是将选择的任务分配模拟方案Fe与其余的任务分配模拟方案视为向量,并基于向量之间欧式距离的计算方式进行计算;将满足条件“dej<visual”的任务分配模拟方案Fj组成第一可视集合U1,其中visual为视野参数,由用户进行设定,基于第一可视集合U1建立中心任务分配模拟方案Fcenter,中心任务分配模拟方案Fcenter的存储形式为,其中/>为第一可视集合U1中所有任务分配模拟方案Fj中第m个云计算子任务Tm上出现次数最多的虚拟机编号,也就是众数,需要说明的,当可以选择的众数有多个时,即同一个云计算子任务Tm上出现次数最多的虚拟机编号有并列多个的情况,随机选择其中一个众数;判断“/>”是否成立,其中/>为中心任务分配模拟方案Fcenter的适应度值,/>为选择的任务分配模拟方案Fe的适应度值,/>为第一可视集合U1中元素的总个数,/>为拥挤因子,由用户进行提前设定;若是“/>”成立,说明中心任务分配模拟方案Fcenter所处的位置并不拥挤,选择的任务分配模拟方案Fe可以向中心任务分配模拟方案Fcenter进行移动,进入S4.1.2;若是“/>”不成立,说明心任务分配模拟方案Fcenter所处的位置较为拥挤,选择的任务分配模拟方案Fe不满足向中心任务分配模拟方案Fcenter进行移动的条件,进入S4.1.3;
S4.1.2:统计选择的任务分配模拟方案Fe与中心任务分配模拟方案Fcenter中对应云计算子任务Tm上分配的虚拟机编号不一致的云计算子任务Tm个数ε1,随机整数生成函数生成一个1至ε1之间的随机整数η1,同时通过随机整数生成函数生成一个1至M之间的随机整数μ1,将中心任务分配模拟方案Fcenter中第μ1个虚拟机编号至第μ1+η1个虚拟机编号对选择的任务分配模拟方案Fe中第μ1个虚拟机编号至第μ1+η1个虚拟机编号进行替换,需要说明的是,当μ1+η1的结果大于M时,只将中心任务分配模拟方案Fcenter中第μ1个虚拟机编号至第M个虚拟机编号对选择的任务分配模拟方案Fe中第μ1个虚拟机编号至第M个虚拟机编号进行替换;判断“”是否成立,其中/>为替换后的任务分配模拟方案Fe的适应度值,若是“/>”成立,说明替换后的任务分配模拟方案更加接近最优解,保留替换后的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第一次更新;若是“/>”不成立,说明替换后的任务分配模拟方案并未接近最优解,不保留对任务分配模拟方案Fe的替换,将需要说明的是,由于将要执行的是选择的任务分配模拟方案Fe向中心任务分配模拟方案Fcenter进行移动的步骤,因此通过统计选择的任务分配模拟方案Fe与中心任务分配模拟方案Fcenter中对应云计算子任务Tm上分配的虚拟机编号不一致的云计算子任务Tm个数ε1,并以ε1来对后续替换片段的长度进行限定,这里的替换片段指第μ1个虚拟机编号至第μ1+η1个虚拟机编号,实现选择的任务分配模拟方案Fe与中心任务分配模拟方案Fcenter差异越大,替换片段的长度能够更长,替换后的任务分配模拟方案Fe能够更加接近中心任务分配模拟方案Fcenter;并且在执行选择的任务分配模拟方案Fe向中心任务分配模拟方案Fcenter移动的过程中,由于选择的任务分配模拟方案Fe并不确定是否向最优解移动,能够实现跳出局部寻优的情况,避免陷入局部最优解;
S4.1.3:统计选择的任务分配模拟方案Fe与全局最优任务分配模拟方案Fbest中对应云计算子任务Tm上分配的虚拟机编号不一致的云计算子任务Tm个数ε2,随机整数生成函数生成一个1至ε2之间的随机整数η1,同时通过随机整数生成函数生成一个1至M之间的随机整数μ2,将全局最优任务分配模拟方案Fbest中第μ2个虚拟机编号至第μ2+η2个虚拟机编号对选择的任务分配模拟方案Fe中第μ2个虚拟机编号至第μ2+η2个虚拟机编号进行替换,判断“”是否成立,若是“/>”成立,说明替换后的任务分配模拟方案更加接近最优解,保留替换后的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第一次更新;若是“/>”不成立,说明替换后的任务分配模拟方案并未接近最优解,不保留对任务分配模拟方案Fe的替换;需要说明的是,与步骤S4.1.2不同,步骤S4.1.3执行的是选择的任务分配模拟方案Fe向全局最优任务分配模拟方案Fbest移动的过程,即对最优解的全局搜索过程;
S4.2:从经过第一次更新的模拟种群集合中逐个选择任务分配模拟方案Fe,针对选择的任务分配模拟方案Fe执行第二次更新:
S4.2.1:通过随机函数生成一个0至1之间的随机数α,判断“α>β”是否成立,β为局部搜索允许阈值,由用户进行设定,一般为0.75;若是“α>β”成立,说明选择的任务分配模拟方案Fe满足移动条件,进入S4.2.2;否则,无操作;
S4.2.2:计算选择的任务分配模拟方案Fe与其余的任务分配模拟方案之间欧式距离dek,其中k=1,2,3,……E,且k≠e,将满足条件“dek<visual”的任务分配模拟方案Fk组成第二可视集合U2,遍历选择的任务分配模拟方案Fe,针对选择的每一个虚拟机编号,从第二可视集合U2中所有任务分配模拟方案Fk中的第m个云计算子任务Tm分配的虚拟机编号中随机选择一个虚拟机编号对任务分配模拟方案Fe中的虚拟机编号/>进行替换,当任务分配模拟方案Fe中的所有虚拟机编号/>替换完毕后,计算替换后的任务分配模拟方案Fe的适应度值/>,判断“/>”是否成立,若是“/>”成立,说明替换后的任务分配模拟方案更加接近最优解,保留替换后的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第二次更新;若是“/>”不成立,说明替换后的任务分配模拟方案并未接近最优解,不保留对任务分配模拟方案Fe的替换,需要说明的是,步骤S4.2.2执行的任务分配模拟方案的局部搜索,即基于自身视野内的所有任务分配模拟方案来对自身进行更新;
S4.3:从经过第二次更新的模拟种群集合中逐个选择任务分配模拟方案Fe,针对选择的任务分配模拟方案Fe执行第三次更新:
S4.3.1:计算选择的任务分配模拟方案Fe与其余的任务分配模拟方案之间欧式距离dei,其中i=1,2,3,……E,且i≠e,将满足条件“dei<visual”的任务分配模拟方案Fk组成第三可视集合U3,选择第三可视集合U3中适应度值最大的任务分配模拟方案,记为局部最优任务分配模拟方案Fpart,判断“”是否成立,其中/>为局部最优任务分配模拟方案Fpart的适应度值,/>为第三可视集合U3中元素的总个数;若是“”成立,说明局部最优任务分配模拟方案Fpart所处的位置并不拥挤,选择的任务分配模拟方案Fe可以向局部最优任务分配模拟方案Fpart进行移动,进入S4.3.2;否则,无操作;
S4.3.2:统计选择的任务分配模拟方案Fe与局部最优任务分配模拟方案Fpart中对应云计算子任务Tm上分配的虚拟机编号不一致的云计算子任务Tm个数ε3,随机整数生成函数生成一个1至ε3之间的随机整数η3,同时通过随机整数生成函数生成一个1至M之间的随机整数μ3,将局部最优任务分配模拟方案Fpart中第μ3个虚拟机编号至第μ3+η3个虚拟机编号对选择的任务分配模拟方案Fe中第μ3个虚拟机编号至第μ3+η3个虚拟机编号进行替换,判断“”是否成立,若是“/>”成立,说明替换后的任务分配模拟方案更加接近最优解,保留替换后的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第三次更新;若是“/>”不成立,说明替换后的任务分配模拟方案并未接近最优解,不保留对任务分配模拟方案Fe的替换;通过将选择的任务分配模拟方案向视野范围内最优的任务分配模拟方案进行移动,可以实现局部寻优的过程,加快算法的收敛速度;
S4.4:将经过第三次更新的模拟种群集合中的任务分配模拟方案Fe按照适应度值δe从小到大排序,将经过第三次更新的模拟种群集合中的适应度值最大的两个任务分配模拟方案Fe分别记为第一父本任务分配模拟方案Fmale1和第二父本任务分配模拟方案Fmale2,且满足第一父本任务分配模拟方案Fmale1的适应度值δmale1高于第二父本任务分配模拟方案Fmale2的适应度值δmale2,再选择前r个任务分配模拟方案Fe组成游离更新集合,r由用户进行提前设定,一般为5%,从游离更新集合中逐个选择任务分配模拟方案Fe,针对选择的任务分配模拟方案Fe执行第四次更新:
S4.4.1:通过随机函数生成一个0至1之间的随机数τ,判断“τ<υ”是否成立,其中υ为新个体生成阈值,由用户进行提前设定,一般为0.45,用于表征是否要生成新的任务分配模拟方案;若是“τ<υ”成立,说明满足生成新的任务分配模拟方案的条件,进入S4.4.2;否则,无操作;
S4.4.2:通过随机整数函数生成一个1至τM之间的随机整数η4,同时通过随机整数生成函数生成一个1至M之间的随机整数μ4,将第二父本任务分配模拟方案Fmale2中第μ4个虚拟机编号至第μ4+η4个虚拟机编号对第一父本任务分配模拟方案Fmale1中第μ3个虚拟机编号至第μ3+η3个虚拟机编号进行替换,构建新的第一父本任务分配模拟方案Fmale1,并将新的第一父本任务分配模拟方案Fmale1替换选择的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第四次更新;
S5:对更新后的模拟种群集合中的E个任务分配模拟方案Fe计算适应度值δe,选择更新后的模拟种群集合中的适应度值δe最大的任务分配模拟方案Fe,记为待选任务分配模拟方案Fchoose,将待选任务分配模拟方案Fchoose的适应度值δchoose与全局最优任务分配模拟方案Fbest的适应度值δbest进行比较,若是待选任务分配模拟方案Fchoose的适应度值δchoose高于全局最优任务分配模拟方案Fbest的适应度值δbest,将待选任务分配模拟方案Fchoose作为新的全局最优任务分配模拟方案Fbest;否则,无操作;
S6:判断“g<G”是否成立,若是“g<G”成立,说明还未到达最大迭代次数,将g+1赋值给g,回到S4;若是“g<G”不成立,说明已经到达最大迭代次数,进入S7;
S7:将全局最优任务分配模拟方案Fbest作为最优任务分配方案进行输出。
在通过改进后的红狐优化算法对任务分配方案进行模拟时,初代的模拟种群集合是随机生成的,对于寻找最优解并没有太大帮助,导致需要更长的时间来进行模拟计算,因此,本申请还包括对模拟种群集合的优化,具体步骤如下:
在每一次执行对任务分配方案进行模拟时,记录任务计算量数据集合φξ和对应的最优任务分配方案ψξ,ξ=1,2,3,……J,J为任务计算量数据集合φξ的总数量,需要说明的是,J的值会随着任务分配方案模拟执行的次数不断增加;任务计算量数据集合φξ包括从大到小进行排列的任务计算量Qm;将所有任务计算量数据集合φξ和对应的最优任务分配方案ψξ组成任务分配模拟方案匹配库,任务分配模拟方案匹配库中任务计算量数据集合φξ和对应的最优任务分配方案ψξ一一对应;由于任务分配模拟方案匹配库的存在,要实现这部分功能需要经过一段时间的云计算负载均衡,为任务分配模拟方案匹配库储备足够的数据;
在云计算子任务Tm、任务计算量Qm、虚拟机编号n和虚拟机计算能力Cn的基础上通过改进后的红狐优化算法对任务分配方案进行模拟之前,判断任务分配模拟方案匹配库中是否为空,若是任务分配模拟方案匹配库中为空,直接对任务分配方案进行模拟;若是任务分配模拟方案匹配库中不为空,将任务计算量Qm从大到小进行排列,构建待模拟任务计算量数据集合φstay,将待模拟任务计算量数据集合φstay与任务分配模拟方案匹配库中所有的任务计算量数据集合φξ计算相似度σξ,计算相似度的方式可以采用余弦相似度计算方法,将满足“σξ>σconfidence”的任务计算量数据集合φξ对应的最优任务分配方案ψξ组成种群待选集合,其中σconfidence为相似度阈值,由用户进行设定,一般为0.85;
在云计算子任务Tm、任务计算量Qm、虚拟机编号n和虚拟机计算能力Cn的基础上通过改进后的红狐优化算法对任务分配方案进行模拟时,将种群待选集合中的所有最优任务分配方案ψξ作为任务分配模拟方案Fe存入模拟种群集合中,此时,可以对已经有E个任务分配模拟方案Fe的模拟种群集合进行替换,也可以通过步骤S1.1至步骤S1.2生成E-B个任务分配模拟方案Fe,B为种群待选集合中的所有最优任务分配方案ψξ的总个数,将E-B个任务分配模拟方案Fe与B个最优任务分配方案ψξ组成模拟种群集合;
本申请通过从任务分配模拟方案匹配库中查找与当前云计算任务申请对应的云计算子任务相似的云计算任务,并且把查找到的云计算任务对应的最优任务分配方案作为初代模拟种群集合中的任务分配模拟方案,提升初代模拟种群集合的质量,从而减少对任务分配方案进行模拟所花费的时间。
当云计算任务申请较多时,每次针对用户提交的云计算任务申请来模拟输出最优任务分配方案都会花费一定时间,造成用户体验较差,因此,本申请还包括对最优任务分配方案的直接输出,具体步骤如下:
当获取到用户提交的云计算任务申请时,将此云计算任务申请对应的所有任务计算量Qm从大到小进行排列组成待计算任务计算量数据集合,再将待计算任务计算量数据集合送入训练好的最优任务分配方案预测模型进行计算,最优任务分配方案预测模型基于BP神经网络进行建立,输出预测任务分配方案,计算预测任务分配方案对应的适应度值,若是预测任务分配方案对应的适应度值高于预设适应度值,预设适应度值人为设定,则将预测任务分配方案作为最优任务分配方案进行输出;否则,对任务分配方案进行模拟;需要说明的是,通过最优任务分配方案预测模型计算得到的预测任务分配方案的适应度值并不是很理想,所以预设适应度值一般为最低置信度,能够保证云计算任务的正常执行,所以,此种模式一般在云计算任务申请较多时采用,若是云计算任务申请量在可接受范围内,还是直接采用对任务分配方案进行模拟的方案,能够保证云计算服务器的利用率;
对最优任务分配方案预测模型的训练包括如下步骤:获取任务分配模拟方案匹配库中所有的任务计算量数据集合φξ和对应的最优任务分配方案ψξ,将任务计算量数据集合φξ和对应的最优任务分配方案ψξ组成训练样本,再将所有训练样本组成训练样本集;将训练样本集送入初始化参数的最优任务分配方案预测模型进行训练,期间以最优任务分配方案ψξ作为目标输出,计算损失值,若是损失值在预设范围内,输出训练好的最优任务分配方案预测模型;否则,继续迭代训练。
本申请通过最优任务分配方案预测模型学习任务计算量数据集合与最优任务分配方案之间的映射关系,在云计算任务申请较多时,直接将当前获取的云计算任务申请对应的待计算任务计算量数据集合输入训练好的最优任务分配方案预测模型,输出预测任务分配方案,避免每一个云计算任务申请都要对任务分配方案进行模拟,减少了对云计算任务申请的处理时间,进一步提升用户体验。
实施例2,参见图1,一种云计算负载均衡系统,包括:
云计算任务信息获取模块,用于获取用户提交的云计算任务申请,并根据云计算任务申请将云计算任务分成云计算子任务,同时获取每个云计算子任务的任务计算量;
虚拟机信息获取模块,用于获取云计算虚拟机对应的虚拟机编号,同时获取虚拟机编号对应的虚拟机计算能力;
最优任务分配方案输出模块,用于在云计算子任务、任务计算量、虚拟机编号和虚拟机计算能力的基础上通过改进后的红狐优化算法对任务分配方案进行模拟,并输出最优任务分配方案;
云计算任务分配模块,用于基于最优任务分配方案将云计算子任务分配至云计算虚拟机,实现云计算任务的负载均衡。
一种云计算负载均衡系统,如图1所示,还包括:
任务分配模拟方案匹配库管理模块,用于在每一次执行对任务分配方案进行模拟时,记录任务计算量数据集合和对应的最优任务分配方案,并将所有任务计算量数据集合和对应的最优任务分配方案组成任务分配模拟方案匹配库;
最优任务分配方案预测模型管理模块,用于训练和存储最优任务分配方案预测模型管理;
预测任务分配方案输出模块,用于通过最优任务分配方案预测模型输出预测任务分配方案;
预测任务分配方案判断模块,用于判断预测任务分配方案对应的适应度值是否高于预设适应度值,若是预测任务分配方案对应的适应度值高于预设适应度值,预设适应度值人为设定,则将预测任务分配方案作为最优任务分配方案进行输出;否则,对任务分配方案进行模拟。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。本说明书中未作详细描述的部分属于本领域专业技术人员公知的现有技术。
Claims (4)
1.一种云计算负载均衡方法,其特征在于,包括:
获取用户提交的云计算任务申请;根据云计算任务申请将云计算任务分成M个云计算子任务Tm,m=1,2,3,……M,m为云计算子任务Tm对应的云计算子任务编号,同时获取每个云计算子任务的任务计算量Qm,且从M个云计算子任务Tm按照对应的任务计算量Qm从大到小进行排列;
获取N个云计算虚拟机对应的虚拟机编号n,n=1,2,3,……N;同时获取虚拟机编号n对应的虚拟机计算能力Cn;
在云计算子任务Tm、任务计算量Qm、虚拟机编号n和虚拟机计算能力Cn的基础上通过改进后的红狐优化算法对任务分配方案进行模拟,并输出最优任务分配方案;
基于最优任务分配方案将M个云计算子任务Tm分配至N个云计算虚拟机;
云计算子任务Tm、任务计算量Qm、虚拟机编号n和虚拟机计算能力Cn的基础上通过改进后的红狐优化算法对任务分配方案进行模拟,具体包括如下步骤:
S1:基于云计算子任务Tm和虚拟机编号n建立模拟种群集合,模拟种群集合中存储E个任务分配模拟方案Fe,e=1,2,3,……E,e为任务分配模拟方案编号;任务分配模拟方案Fe的存储形式为其中/>指的是第m个云计算子任务Tm分配的虚拟机编号;
S2:设置最大迭代次数G,并设置g=1,g用于记录迭代次数;
S3:计算模拟种群集合中E个任务分配模拟方案Fe的适应度值δe,并选择E个任务分配模拟方案Fe中适应度值δe最大的任务分配模拟方案Fe作为全局最优任务分配模拟方案Fbest;
S4:基于E个任务分配模拟方案Fe的适应度值δe对模拟种群集合中的E个任务分配模拟方案Fe进行更新;
S5:对更新后的模拟种群集合中的E个任务分配模拟方案Fe计算适应度值δe,选择更新后的模拟种群集合中的适应度值δe最大的任务分配模拟方案Fe,记为待选任务分配模拟方案Fchoose,将待选任务分配模拟方案Fchoose的适应度值δchoose与全局最优任务分配模拟方案Fbest的适应度值δbest进行比较,若是待选任务分配模拟方案Fchoose的适应度值δchoose高于全局最优任务分配模拟方案Fbest的适应度值δbest,将待选任务分配模拟方案Fchoose作为新的全局最优任务分配模拟方案Fbest;否则,无操作;
S6:判断“g<G”是否成立,若是“g<G”成立,将g+1赋值给g,回到S4;若是“g<G”不成立,进入S7;
S7:将全局最优任务分配模拟方案Fbest作为最优任务分配方案进行输出;
模拟种群集合建立的步骤如下:
S1.1:建立一个空的任务模拟分配集合H,任务模拟分配集合H存储形式为{h1,h2…hm…hM},hm初始为0,从任务模拟分配集合H逐个选择hm,针对选择的hm,从N个虚拟机编号n随机选择一个虚拟机编号n对hm进行重新赋值;当任务模拟分配集合H中所有元素hm都被重新赋值后,将任务模拟分配集合H作为任务分配模拟方案Fe进行输出;
S1.2:重复E次步骤S1.1,获得E个任务分配模拟方案Fe,并将E个任务分配模拟方案Fe组成模拟种群集合;
还包括对模拟种群集合的优化,具体步骤如下:
在每一次执行对任务分配方案进行模拟时,记录任务计算量数据集合φξ和对应的最优任务分配方案ψξ,ξ=1,2,3,……J,J为任务计算量数据集合φξ的总数量;任务计算量数据集合φξ包括从大到小进行排列的任务计算量Qm;将所有任务计算量数据集合φξ和对应的最优任务分配方案ψξ组成任务分配模拟方案匹配库,任务分配模拟方案匹配库中任务计算量数据集合φξ和对应的最优任务分配方案ψξ一一对应;
在云计算子任务Tm、任务计算量Qm、虚拟机编号n和虚拟机计算能力Cn的基础上通过改进后的红狐优化算法对任务分配方案进行模拟之前,判断任务分配模拟方案匹配库中是否为空,若是任务分配模拟方案匹配库中为空,直接对任务分配方案进行模拟;若是任务分配模拟方案匹配库中不为空,将任务计算量Qm从大到小进行排列,构建待模拟任务计算量数据集合φstay,将待模拟任务计算量数据集合φstay与任务分配模拟方案匹配库中所有的任务计算量数据集合φξ计算相似度σξ,将满足“σξ>σconfidence”的任务计算量数据集合φξ对应的最优任务分配方案ψξ组成种群待选集合,其中σconfidence为相似度阈值;在云计算子任务Tm、任务计算量Qm、虚拟机编号n和虚拟机计算能力Cn的基础上通过改进后的红狐优化算法对任务分配方案进行模拟时,将种群待选集合中的所有最优任务分配方案ψξ作为任务分配模拟方案Fe存入模拟种群集合中,通过步骤S1.1至步骤S1.2生成E-B个任务分配模拟方案Fe,B为种群待选集合中的所有最优任务分配方案ψξ的总个数,将E-B个任务分配模拟方案Fe与B个最优任务分配方案ψξ组成模拟种群集合;
还包括对最优任务分配方案的直接输出,具体步骤如下:
当获取到用户提交的云计算任务申请时,将此云计算任务申请对应的所有任务计算量Qm从大到小进行排列组成待计算任务计算量数据集合,再将待计算任务计算量数据集合送入训练好的最优任务分配方案预测模型进行计算,最优任务分配方案预测模型基于BP神经网络进行建立,输出预测任务分配方案,计算预测任务分配方案对应的适应度值,若是预测任务分配方案对应的适应度值高于预设适应度值,则将预测任务分配方案作为最优任务分配方案进行输出;否则,对任务分配方案进行模拟;
对最优任务分配方案预测模型的训练包括如下步骤:获取任务分配模拟方案匹配库中所有的任务计算量数据集合φξ和对应的最优任务分配方案ψξ,将任务计算量数据集合φξ和对应的最优任务分配方案ψξ组成训练样本,再将所有训练样本组成训练样本集;将训练样本集送入初始化参数的最优任务分配方案预测模型进行训练,期间以最优任务分配方案ψξ作为目标输出,计算损失值,若是损失值在预设范围内,输出训练好的最优任务分配方案预测模型;否则,继续迭代训练。
2.根据权利要求1所述的一种云计算负载均衡方法,其特征在于,计算任务分配模拟方案Fe的适应度值δe包括如下步骤:由于在进行云计算任务负载均衡时,更多考虑的是任务完成时间,因此任务分配模拟方案Fe的适应度值δe也是基于任务完成时间进行计算;根据任务分配模拟方案Fe建立任务分配矩阵AMN,任务分配矩阵AMN内部的任务分配数值amn表示任务分配矩阵AMN内第m行第n列的数据,建立方式如下:从任务分配模拟方案Fe中逐个选择元素并提取元素/>对应的虚拟机编号n和云计算子任务编号m,将虚拟机编号n和云计算子任务编号m对应的任务分配数值amn赋值为1,当任务分配模拟方案Fe中所有元素/>被选择完毕后,完成任务分配矩阵AMN的建立;适应度值δe的计算公式如下:
3.根据权利要求2所述的一种云计算负载均衡方法,其特征在于,基于E个任务分配模拟方案Fe的适应度值δe对模拟种群集合中的E个任务分配模拟方案Fe进行更新,具体包括如下步骤:
S4.1:从模拟种群集合中逐个选择任务分配模拟方案Fe,针对选择的任务分配模拟方案Fe执行第一次更新:
S4.1.1:计算选择的任务分配模拟方案Fe与其余的任务分配模拟方案之间欧式距离dej,其中j=1,2,3,……E,且j≠e;将满足条件“dej<visual”的任务分配模拟方案Fj组成第一可视集合U1,其中visual为视野参数,基于第一可视集合U1建立中心任务分配模拟方案Fcenter,中心任务分配模拟方案Fcenter的存储形式为其中/>为第一可视集合U1中所有任务分配模拟方案Fj中第m个云计算子任务Tm上出现次数最多的虚拟机编号;判断是否成立,其中δcenter为中心任务分配模拟方案Fcenter的适应度值,δe为选择的任务分配模拟方案Fe的适应度值,Uf为第一可视集合U1中元素的总个数,ζ为拥挤因子;若是/>成立,进入S4.1.2;若是/>不成立,进入S4.1.3;
S4.1.2:统计选择的任务分配模拟方案Fe与中心任务分配模拟方案Fcenter中对应云计算子任务Tm上分配的虚拟机编号不一致的云计算子任务Tm个数ε1,随机整数生成函数生成一个1至ε1之间的随机整数η1,同时通过随机整数生成函数生成一个1至M之间的随机整数μ1,将中心任务分配模拟方案Fcenter中第μ1个虚拟机编号至第μ1+η1个虚拟机编号对选择的任务分配模拟方案Fe中第μ1个虚拟机编号至第μ1+η1个虚拟机编号进行替换;判断是否成立,其中/>为替换后的任务分配模拟方案Fe的适应度值,若是成立,保留替换后的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第一次更新;若是/>不成立,不保留对任务分配模拟方案Fe的替换;
S4.1.3:统计选择的任务分配模拟方案Fe与全局最优任务分配模拟方案Fbest中对应云计算子任务Tm上分配的虚拟机编号不一致的云计算子任务Tm个数ε2,随机整数生成函数生成一个1至ε2之间的随机整数η1,同时通过随机整数生成函数生成一个1至M之间的随机整数μ2,将全局最优任务分配模拟方案Fbest中第μ2个虚拟机编号至第μ2+η2个虚拟机编号对选择的任务分配模拟方案Fe中第μ2个虚拟机编号至第μ2+η2个虚拟机编号进行替换,判断是否成立,若是/>成立,保留替换后的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第一次更新;若是/>不成立,不保留对任务分配模拟方案Fe的替换;
S4.2:从经过第一次更新的模拟种群集合中逐个选择任务分配模拟方案Fe,针对选择的任务分配模拟方案Fe执行第二次更新:
S4.2.1:通过随机函数生成一个0至1之间的随机数α,判断“α>β”是否成立,β为局部搜索允许阈值;若是“α>β”成立,进入S4.2.2;否则,无操作;
S4.2.2:计算选择的任务分配模拟方案Fe与其余的任务分配模拟方案之间欧式距离dek,其中k=1,2,3,……E,且k≠e,将满足条件“dek<visual”的任务分配模拟方案Fk组成第二可视集合U2,遍历选择的任务分配模拟方案Fe,针对选择的每一个虚拟机编号从第二可视集合U2中所有任务分配模拟方案Fk中的第m个云计算子任务Tm分配的虚拟机编号中随机选择一个虚拟机编号对任务分配模拟方案Fe中的虚拟机编号/>进行替换,当任务分配模拟方案Fe中的所有虚拟机编号/>替换完毕后,计算替换后的任务分配模拟方案Fe的适应度值/>判断/>是否成立,若是/>成立,保留替换后的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第二次更新;若是/>不成立,不保留对任务分配模拟方案Fe的替换;
S4.3:从经过第二次更新的模拟种群集合中逐个选择任务分配模拟方案Fe,针对选择的任务分配模拟方案Fe执行第三次更新:
S4.3.1:计算选择的任务分配模拟方案Fe与其余的任务分配模拟方案之间欧式距离dei,其中i=1,2,3,……E,且i≠e,将满足条件“dei<visual”的任务分配模拟方案Fk组成第三可视集合U3,选择第三可视集合U3中适应度值最大的任务分配模拟方案,记为局部最优任务分配模拟方案Fpart,判断是否成立,其中δpart为局部最优任务分配模拟方案Fpart的适应度值,Up为第三可视集合U3中元素的总个数;若是/>成立,进入S4.3.2;否则,无操作;
S4.3.2:统计选择的任务分配模拟方案Fe与局部最优任务分配模拟方案Fpart中对应云计算子任务Tm上分配的虚拟机编号不一致的云计算子任务Tm个数ε3,随机整数生成函数生成一个1至ε3之间的随机整数η3,同时通过随机整数生成函数生成一个1至M之间的随机整数μ3,将局部最优任务分配模拟方案Fpart中第μ3个虚拟机编号至第μ3+η3个虚拟机编号对选择的任务分配模拟方案Fe中第μ3个虚拟机编号至第μ3+η3个虚拟机编号进行替换,判断是否成立,若是/>成立,保留替换后的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第三次更新;若是/>不成立,不保留对任务分配模拟方案Fe的替换;
S4.4:将经过第三次更新的模拟种群集合中的任务分配模拟方案Fe按照适应度值δe从小到大排序,将经过第三次更新的模拟种群集合中的适应度值最大的两个任务分配模拟方案Fe分别记为第一父本任务分配模拟方案Fmale1和第二父本任务分配模拟方案Fmale2,且满足第一父本任务分配模拟方案Fmale1的适应度值δmale1高于第二父本任务分配模拟方案Fmale2的适应度值δmale2,再选择前r个任务分配模拟方案Fe组成游离更新集合,从游离更新集合中逐个选择任务分配模拟方案Fe,针对选择的任务分配模拟方案Fe执行第四次更新:
S4.4.1:通过随机函数生成一个0至1之间的随机数τ,判断“τ<υ”是否成立,其中υ为新个体生成阈值;若是“τ<υ”成立,进入S4.4.2;否则,无操作;
S4.4.2:通过随机整数函数生成一个1至τM之间的随机整数η4,同时通过随机整数生成函数生成一个1至M之间的随机整数μ4,将第二父本任务分配模拟方案Fmale2中第μ4个虚拟机编号至第μ4+η4个虚拟机编号对第一父本任务分配模拟方案Fmale1中第μ3个虚拟机编号至第μ3+η3个虚拟机编号进行替换,构建新的第一父本任务分配模拟方案Fmale1,并将新的第一父本任务分配模拟方案Fmale1替换选择的任务分配模拟方案Fe,实现对任务分配模拟方案Fe的第四次更新。
4.一种云计算负载均衡系统,其特征在于,所述系统应用于上述权利要求1-3任一项所述的一种云计算负载均衡方法,包括:
云计算任务信息获取模块,用于获取用户提交的云计算任务申请,并根据云计算任务申请将云计算任务分成云计算子任务,同时获取每个云计算子任务的任务计算量;
虚拟机信息获取模块,用于获取云计算虚拟机对应的虚拟机编号,同时获取虚拟机编号对应的虚拟机计算能力;
最优任务分配方案输出模块,用于在云计算子任务、任务计算量、虚拟机编号和虚拟机计算能力的基础上通过改进后的红狐优化算法对任务分配方案进行模拟,并输出最优任务分配方案;
云计算任务分配模块,用于基于最优任务分配方案将云计算子任务分配至云计算虚拟机;
还包括:
任务分配模拟方案匹配库管理模块,用于在每一次执行对任务分配方案进行模拟时,记录任务计算量数据集合和对应的最优任务分配方案,并将所有任务计算量数据集合和对应的最优任务分配方案组成任务分配模拟方案匹配库;
最优任务分配方案预测模型管理模块,用于训练和存储最优任务分配方案预测模型管理;预测任务分配方案输出模块,用于通过最优任务分配方案预测模型输出预测任务分配方案;
预测任务分配方案判断模块,用于判断预测任务分配方案对应的适应度值是否高于预设适应度值,若是预测任务分配方案对应的适应度值高于预设适应度值,预设适应度值人为设定,则将预测任务分配方案作为最优任务分配方案进行输出;否则,对任务分配方案进行模拟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311598157.4A CN117311993B (zh) | 2023-11-28 | 2023-11-28 | 一种云计算负载均衡方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311598157.4A CN117311993B (zh) | 2023-11-28 | 2023-11-28 | 一种云计算负载均衡方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117311993A CN117311993A (zh) | 2023-12-29 |
CN117311993B true CN117311993B (zh) | 2024-03-08 |
Family
ID=89273953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311598157.4A Active CN117311993B (zh) | 2023-11-28 | 2023-11-28 | 一种云计算负载均衡方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117311993B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114358286A (zh) * | 2022-03-08 | 2022-04-15 | 浙江中科华知科技股份有限公司 | 一种移动设备联邦学习方法及系统 |
CN115794354A (zh) * | 2023-01-10 | 2023-03-14 | 深圳大学 | 一种基于K-Means聚类和改进AOA算法的云视频转码任务调度 |
CN116340869A (zh) * | 2023-03-31 | 2023-06-27 | 湖北工业大学 | 基于红狐优化算法的分布式CatB肌体检测方法及设备 |
CN117032902A (zh) * | 2023-09-26 | 2023-11-10 | 北京计算机技术及应用研究所 | 一种基于负载的改进离散粒子群算法的云任务调度方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11769228B2 (en) * | 2021-08-02 | 2023-09-26 | Google Llc | Image enhancement via iterative refinement based on machine learning models |
-
2023
- 2023-11-28 CN CN202311598157.4A patent/CN117311993B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114358286A (zh) * | 2022-03-08 | 2022-04-15 | 浙江中科华知科技股份有限公司 | 一种移动设备联邦学习方法及系统 |
CN115794354A (zh) * | 2023-01-10 | 2023-03-14 | 深圳大学 | 一种基于K-Means聚类和改进AOA算法的云视频转码任务调度 |
CN116340869A (zh) * | 2023-03-31 | 2023-06-27 | 湖北工业大学 | 基于红狐优化算法的分布式CatB肌体检测方法及设备 |
CN117032902A (zh) * | 2023-09-26 | 2023-11-10 | 北京计算机技术及应用研究所 | 一种基于负载的改进离散粒子群算法的云任务调度方法 |
Non-Patent Citations (3)
Title |
---|
Improved red fox optimizer with fuzzy theory and game theory for task scheduling in cloud environment;Zade, B. Mohammad Hasani;JOURNAL OF COMPUTATIONAL SCIENCE Volume 63;1-37 * |
Oppositional Red Fox Optimization Based Task Scheduling Scheme for Cloud Environment;Chellapraba, B;COMPUTER SYSTEMS SCIENCE AND ENGINEERING Volume45 Issue1;483-495 * |
融合负载均衡和蝙蝠算法的云计算任务调度;王东亮;衣俊艳;李时慧;王洪新;;信息网络安全(01);27-32 * |
Also Published As
Publication number | Publication date |
---|---|
CN117311993A (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107888669B (zh) | 一种基于深度学习神经网络的大规模资源调度系统及方法 | |
CN108292241B (zh) | 处理计算图 | |
Alkayal et al. | Efficient task scheduling multi-objective particle swarm optimization in cloud computing | |
CN108776612A (zh) | 一种云计算任务分配方法、装置、设备及存储介质 | |
CN104572297B (zh) | 一种基于遗传算法的Hadoop作业调度方法 | |
CN109710406B (zh) | 数据分配及其模型训练方法、装置、及计算集群 | |
CN105975342A (zh) | 基于改进布谷鸟搜索算法的云计算任务调度方法及系统 | |
CN113742089B (zh) | 异构资源中神经网络计算任务的分配方法、装置和设备 | |
CN106412124B (zh) | 一种并序化云服务平台任务分配系统及任务分配方法 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN112685138B (zh) | 云环境下基于多种群混合智能优化的多工作流调度方法 | |
CN109445386B (zh) | 一种基于onba的云制造任务最短生产时间调度方法 | |
Yin et al. | An improved genetic algorithm for task scheduling in cloud computing | |
Muthusamy et al. | Cluster-based task scheduling using K-means clustering for load balancing in cloud datacenters | |
CN109684088B (zh) | 云平台资源约束的遥感大数据快速处理任务调度方法 | |
KR20190054449A (ko) | 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법 | |
CN115330189A (zh) | 一种基于改进飞蛾火焰算法的工作流优化调度方法 | |
CN111309472A (zh) | 一种基于虚拟机预部署的在线虚拟资源分配方法 | |
Menouer et al. | New scheduling strategy based on multi-criteria decision algorithm | |
Jacob et al. | Resource scheduling in cloud using bacterial foraging optimization algorithm | |
CN115016938A (zh) | 一种基于强化学习的计算图自动划分方法 | |
Awad et al. | A swarm intelligence-based approach for dynamic data replication in a cloud environment | |
CN117311993B (zh) | 一种云计算负载均衡方法及系统 | |
CN116915869A (zh) | 基于云边协同的时延敏感型智能服务快速响应方法 | |
CN107155215B (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 |