首页 / 基于改进蜂群算法的云资源实时调度方法

基于改进蜂群算法的云资源实时调度方法实质审查 发明

技术领域

[0001] 本发明涉及云资源实时调度技术,具体为基于改进蜂群算法的云资源实时调度方法。

相关背景技术

[0002] 现有技术在云计算资源调度时,难以有效平衡能源消耗和计算时间两个相互冲突的目标,目标相互冲突导致任务执行时间延长,系统容错能力降低;传统蜂群算法在云计算资源调度应用中收敛速度不够快且求解精度有限,遗传算法存在过早收敛到局部最优解的问题,收敛速度慢导致资源调度决策的延迟,算法求解精度低导致能耗增加,且难以快速适应动态变化并找到最优解;针对上述技术问题,本申请提出一种解决方案。

具体实施方式

[0014] 下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0015] 实施例:请参阅图1所示,基于改进蜂群算法的云资源实时调度方法,包括主模块、从模块;
云计算资源池由大量异构的服务器集群组成,用 表示服
务器集群,其中 , 表示集群中某一服务器;用集合
表示一组待执行的任务,其中 , 表示某一任务;
实际运行中,各个服务器的性能不同,所要执行的任务的性质不同,甚至服务器环境也不同,这些因素往往造成不同任务在不同的服务器上执行所消耗的能源和执行时间都是不同的;我们采用 表示将任务 分配给服务器 的能源消耗量, 表示将任务 分配给服务器 所需计算时间;而在服务器管理中,服务器能稳定有效的运行的前提是在任务分派时每台服务器 的能源消耗限制在一定的范围内;用集合
表示服务器能源消耗上限,其中 , , 表示服务
器 的能源消耗上限;用二维比特数组 表示任务在服务器群集中的分配情况,当 的值为“1”时表示将任务 分配给服务器 ;当 的值为“0”时表示不将任务 分配给服务器 ;
服务器完成所有任务计算所需要的能源消耗量,通过能源消耗函数表示,能源消耗函数 ;服务器执行每个任务的时间汇总,通过计算时间函
数表示,计算时间函数 ;本项目的目标函数是同时最小化能
源消耗和计算时间,目标函数为 , 表示与能源消耗相关的函
数, , 表示与计算时间相关的函数, ;
任务在安排时需要满足一定的条件,本模型约束条件如下:
每个服务器上分配的任务,其运行的能源消耗不能超过该服务器的能源消耗上限值,通过 表示, ;每一个任务都被执行且执行一次,通过
表示, ;每个服务器相对于每一个任务只有执行或不执行两种
状态,通过 , 表示。
[0016] 雇佣蜜蜂阶段,传统雇佣蜜蜂产生了新解之后,只有当新解和旧解之间有支配关系时,才会去除被支配的那个解,否则两个解都保留;支配关系指的是,解 支配解 时,对于所有目标函数 , ,都存在 ,且至少存在一个目标函数 使得;在多目标场景下,不能仅依据单个目标来判断解的优劣,需要一种综合评估机制,若解 在能源消耗和计算时间上均不劣于解 ,且至少在一个目标上更优(如能源消耗更低或计算时间更短),则认为解 支配解 ;若旧解保留,旧解在种群中的“留存代数”计数值加1,若新解保留,新解的初始计数值为0;这样解的数量会发生增加,若新解支配旧解,则执行更新操作,用新解替换旧解;
在云计算资源调度中,若新解对应的资源分配方案在能源消耗和计算时间这两个目标上,要么比旧解消耗更少的能源且计算时间相同(或更短),要么计算时间更短且能源消耗相同(或更少),或者在能源消耗和计算时间两个目标上均更优,则判定新解支配旧解,此时执行更新操作;
旁观者蜜蜂阶段,由于在雇佣蜜蜂阶段中解的数量发生变量,这里相应增加了旁观者蜜蜂的数量;若雇佣蜜蜂阶段解的数量增加了 个,旁观者蜜蜂的数量按照设定比例进行增加,即增加 个;初始化旁观者蜜蜂,为每个旁观者蜜蜂赋予一个初始的选择概率(初始概率设置为均匀分布,即每个解被选择的概率相同),并使其与当前种群中的解相关联,即每个旁观者蜜蜂对应种群中的一个解;种群的数量发生变化,有更多的优质的解得以保留并持续更新,则通过轮盘赌方法选择相应的解;
对于云计算资源调度问题中的能源消耗和计算时间两个目标,设计一个适应度函数 ,为任务执行的总时间, 为能源消耗量, 和 为权重
系数;根据计算得到的适应度值 ,更新每个解对应的适应度信息;适应度值越高的解,被旁观者蜜蜂选择的概率越大;计算每个解的累积概率,若有 个解,第 个解的适应度值为,第 个解被选中的概率为 ,第 个解的累积概率 ,生成一
个在 之间的随机数 ;从第一个解开始,依次比较累积概率 与随机数 ,当时,选择第 个解;
每个旁观者蜜蜂独立地进行选择操作,选择出一个解作为其“关注”的解,被选择的旁观者蜜蜂在其“关注”的解的邻域内进行搜索,产生一个新的解,搜索方式与雇佣蜜蜂阶段相同;云计算资源调度问题中的资源分配方案(解),新的解可以通过在当前资源分配的基础上,随机选择设定比例的任务,将其从当前分配的服务器转移到其他服务器上,同时考虑服务器的三种约束条件;计算新解的能源消耗和计算时间的目标函数值,并与原始“关注”的解进行比较,若新解根据多目标优化的比较规则表现更优(支配关系),则用新解替换原始解;否则,保留原始解;
若新解替换了原始解,则将种群中的相应位置更新为新解,对解的适应度值和“留存代数”计数值进行更新;若原始解被保留,则种群保持不变;
在完成旁观者蜜蜂阶段后,因在雇佣蜜蜂和旁观者蜜蜂两个阶段中,解的数量发生了膨胀,即搜索了较大的空间;为控制种群的数目,使种群的数目不会无限制的增长解的数量,需要对解进行过滤,留下较好的解进入侦察蜜蜂阶段;采用快速非支配排序方法进行解的过滤;
将当前种群中的所有解标记为未排序状态,后续的排序过程中能够准确地识别每个解的处理情况;初始化一个空的非支配解集列表 ,用于存储不同等级的非支配解集;对于种群中的每一个解 ,与种群中的其他所有解 ( )进行两两比较,若对于所有目标函数 ,都存在 ,且至少存在一个目标函数 使得
,则判定解 支配解 ,记录解 支配解 的关系;在完成所有的两两比较后,筛选出不被任何其他解支配的解,将这些解放入非支配解集 中,并为 中的解赋予等级1;从当前种群中移除非支配解集 中的解,得到一个新的种群 ,对于新种群 ,重复上述确定非支配解集的步骤,找出不被 中其他任何解支配的解,组成新的非支配解集,并为 中的解赋予等级2;继续从新种群 中移除非支配解集 中的
解,得到新的种群 ,重复上述过程,直到整个种群中的所有解都被分配了等级,得到一系列非支配解集 、 、 ;对于每个非支配解集
中的解,分别计算其拥挤距离,对于每个目标函数 ,将非支配解集 中的解按照目标函数值 进行升序排序;对于排序后的边界解(即第一个和最后一个解,它们在该目标函数上具有最小和最大值),将其拥挤距离设为无穷大,对于其他解(非边界解),其拥挤距离的计算方法为 ,其中 为目标函数数量,
和 分别是在目标函数 上排序后解 相邻的后一个和解 相邻的前
一个解的目标函数值;拥挤距离反映了解在目标空间中的分布密度,拥挤距离越大,表示该解周围的解相对较少,解的分布越稀疏;反之,拥挤距离越小,表示解的分布越密集;
根据解的等级和拥挤距离进行筛选,优先裁减等级较高的解,对于同等级的解,按照拥挤距离从小到大的顺序进行裁减,直到种群数目与初始食物源数目相同;筛选完成后,剩下的解组成了过滤后的种群;
侦察蜜蜂阶段,对过滤后的种群中的解集进行检查,若解集中存在支配解,则进入后续的删除和替换操作,遍历解集中的所有支配解,从支配解中选择一个计数值最大的支配解进行删除,并用随机产生的新解去替换它;新解的生成通过随机分配任务到不同的服务器上,同时需要考虑服务器的三种约束条件,以确保新解是一个可行的资源分配方案;若全是非支配解,则跳过侦察蜂阶段,直接进行下一次迭代;在下一次迭代中,新的解集将作为初始种群,再次经历雇佣蜜蜂阶段、旁观者蜜蜂阶段、解的过滤阶段和侦察蜜蜂阶段,不断重复这个过程,直到满足算法的终止条件(如达到最大迭代次数或解的质量达到一定的收敛标准),最终得到优化后的云资源调度方案(即任务和资源分配方案,使得能源消耗和计算时间两个目标达到相对较优的平衡);
根据云计算环境的计算资源和问题规模,通过服务器的核心数确定初始化的线程数量为 ,为每个线程创建一个从模块,每个从模块都将独立运行一个多目标的蜂群算法实例;为每个从模块分配独立的内存空间,用于存储其种群数据、解的相关信息以及算法运行过程中的中间结果,解的相关信息包括资源分配方案、能源消耗、计算时间、计数值和适应度值;
在每个从模块中,随机生成初始种群;对于云计算资源调度问题,初始种群中的每个解代表一种可能的资源分配方案;计算初始种群中每个解的能源消耗和计算时间的目标函数值;根据能源消耗和计算时间的目标函数值,计算每个解的适应度,并初始化解的计数值;
每个从模块在自己的种群内开始执行多目标蜂群算法的迭代过程;在雇佣蜜蜂阶段,从模块中的雇佣蜜蜂根据当前解(资源分配方案)产生新解,通过比较新解和旧解的支配关系决定解的保留或替换,同时更新解的计数值;旁观者蜜蜂阶段,根据雇佣蜜蜂阶段解数量的变化增加旁观者蜜蜂数量,通过轮盘赌方法选择解(选择概率与解的适应度相关,适应度越高被选择概率越大),并在所选解的邻域内搜索新解,比较新解和原始解的性能,决定是否更新种群中的解以及相应的解信息(如适应度值、计数值等);解的过滤阶段,采用快速非支配排序方法对种群中的解进行分级,计算每个等级解的拥挤距离,根据解的等级和拥挤距离裁减解,保持种群中解的最优性和分布均匀性,直到种群数目与初始食物源数目相同;
在每次迭代结束后,每个从模块将本次迭代过程中产生的非支配解传递给主模块;传递的数据包括解的完整信息,解的完整信息包括资源分配方案、能源消耗、计算时间、适应度值和计数值,以便主模块能够全面了解从模块的搜索结果;
主模块负责收集各个从模块传递过来的非支配解;当收到从模块的非支配解后,主模块将这些解与已有的非支配解集和进行合并;在合并过程中,若新加入的解造成原有的解的等级和拥挤距离发生变化,再次进行快速非支配排序和拥挤距离计算,以确保主模块维护的非支配解集和始终是最优的;为了防止非支配解集和过于庞大,影响算法效率,主模块设置一个阈值 ,当非支配解集和中的解数量超过 时,根据拥挤距离裁减部分解,优先裁减拥挤距离小的解,使解的数量保持在合理范围内;
设定从模块迭代次数为 ,当各个从模块完成设定从模块迭代次数的迭代后,主模块以当前维护的非支配解集和为初始种群,开始执行多目标蜂群算法的迭代;主模块的迭代过程与从模块类似,但它是在全局的非支配解集和基础上进行搜索,旨在进一步优化解的质量,寻找更优的帕累托前沿(即在不使任何一个目标变差的情况下,无法使其他目标更好的解集);主模块在迭代过程中,同样会产生新解、评估解的性能、进行解的比较和更新操作,并且也会将迭代过程中产生的非支配解继续合并到非支配解集和中,后再次进行排序和裁减操作;
设定主模块迭代次数为 ,主模块完成设定主模块迭代次数的迭代后,将得到的种群均匀分配给各个从模块;分配方式为平均分配,即将种群中的解按照从模块数量进行平均划分,每个从模块得到相同数量的解,且作为其下一次迭代的初始种群。在分配解时,要确保每个从模块得到的解具有一定的多样性,避免某些从模块的初始种群过于相似,影响搜索效率;
从模块收到主模块分配的种群后,开始并发执行多目标蜂群算法,重复上述从模块迭代阶段的操作,包括执行算法、产生非支配解并传递给主模块;主模块继续收集从模块传递的非支配解,维护非支配解集和,然后再次以非支配解集和为初始种群进行迭代,如此循环往复,主从模块轮流并发执行;
在每次主模块完成迭代后,判断是否满足算法的终止条件;终止条件一,达到最大总迭代次数 ,即主模块和从模块总共执行的迭代次数达到预先设定的值;终止条件二,连续多次主模块迭代后,非支配解集和中的解的质量没有明显改进,即解已经收敛到一定程度;终止条件三,计算资源的使用时间超过预设的时间上限;
当满足终止条件时,主模块不再分配种群给从模块,而是返回最后得到的种群;这个最终种群中的解代表了经过多次迭代优化后的资源分配方案,在能源消耗和计算时间方面具有较好的性能表现。
[0017] 迭代所造成的消耗量 ,服务器运行所造成的消耗量 ;
服务器数量为 ,任务数量为 ,预设计算一个解的目标函数值的计算复杂度为,种群规模为 ,则雇佣蜂阶段计算资源的消耗量为 ;预
设轮盘赌选择和搜索新解的计算复杂度为 ,增加后的种群规模为 ,则旁观者蜂阶段计算资源的消耗量为 ;解的过滤阶段计算资源的消耗量预设
为 ;侦察蜂阶段计算资源的消耗量预设为 ;主从模块迭代阶段
计算资源的消耗量预设为 ,对以上五种计算资源消耗量的总和进行计算,得到一次迭代所造成的计算资源消耗量,记为 ,随着迭代次数 的增加,假设每次迭代计算资源消耗相同的情况下,总计算资源消耗量 ;
均表示与服务器数量 和任务数量 相关的函数, 表示在对应阶
段,计算资源消耗的增长速度与 的增长速度在数量级上是相同的,
[0018] 假设存储一个解需要的内存空间为 ,种群规模为 ,则种群占用的内存资源量为 ;解的过滤阶段需要存储解的等级和拥挤距离等信息,需要的内存空间为 ;非支配解集占用内存空间为 ;对以上
三种内存资源消耗量的总和进行计算,得到一次迭代所造成的内存资源消耗量,随着迭代次数 的增加,假设每次迭代内存资源消耗相同的情况下,总内存资源消耗量为; 均表示与服务器数量 和任务数量 相关
的函数, 表示在对应阶段,内存资源消耗的增长速度与 的增长速度
在数量级上是相同的,
[0019] 雇佣蜂阶段产生新解和比较支配关系的时间复杂度设为 ,种群规模为 ,则雇佣蜂阶段的时间消耗量为 ;旁观者蜜蜂阶段轮盘赌选择解和搜索新解的时间复杂度设为 ,增加后的种群规模为 ,则旁观者蜂阶段计算资源的消耗量为 ;解的过滤阶段的快速非支配排序方法时间复杂
度设为 ;侦察蜜蜂阶段选择和替换解的时间消耗设为 ;主模块
收集、合并非支配解以及基于非支配解集和进行迭代计算的时间消耗设为 ;
对以上五种内存资源消耗量的总和进行计算,得到一次迭代所造成的内存资源消耗量,随着迭代次数 的增加,假设每次迭代内存资源消耗相同的情况下,总内存资源消耗量为 ; 均表示与服务器数量 和任务数量
相关的函数, 表示在对应阶段,内存资源消耗的增长速度与 的增
长速度在数量级上是相同的,
[0020] 服务器运行过程中,预设服务器 在单位时间 内执行多个任务,其能源消耗可以通过对分配到该服务器上的所有任务的能源消耗进行求和得到,能源消耗总量, 为单位时间 内分配到服务器 上的任务合集, 为单位时间 内是否分配到服务器 上, 表示分配, 表示未分配;
计算资源消耗总量 , 为任务 在服务器 上单位
时间 内占用计算资源量;对于CPU资源,可以根据任务在单位时间内占用的CPU核心数和每个核心的使用率来计算 ;对于磁盘I/O资源,可以根据任务的读写数据量和磁盘读写速度等因素确定 ;
内存资源消耗总量 , 为任务 在服务器 上
运行时所需要的内存量;
在侦察蜜蜂阶段过程中,主从模块迭代导致对计算资源消耗、内存资源消耗和时间消耗趋于平稳的状态,在主模块未达到三个终止条件之一前,主从模块迭代将持续进行迭代操作,主从模块在进行迭代操作的过程中,服务器持续处于唤醒状态,唤醒状态下服务器运行持续消耗资源,对迭代消耗资源量与服务器运行消耗资源量进行比较,当时,判定主从模块继续进行迭代操作消耗的资源量大于服务器运行消耗
资源量,继续运行服务器所带来的额外资源开销较大,会造成资源的浪费或者对系统的整体资源平衡产生影响,若主模块仍未达到三个终止条件的其中之一,判定迭代操作停止,服务器停止工作;
对种群中的解进行拥挤距离的计算,选择拥挤距离较大的解且等级为1;考虑解在迭代过程中的稳定性,在雇佣蜜蜂阶段和解的过滤阶段中,解的计数值可以反映其稳定性,计数值较低的解具有更好的稳定性;
设解 在第 次迭代时的性能评估函数值为 ,计算解 从第 次迭代到第
次迭代的性能变化趋势值 ,
为设定的观察窗口大小;若预设平均变化率最大值 ,则判定
解 在这段迭代过程中的性能呈上升趋势;若预设平均变化率最小值
,则判定解 在这段迭代过程中的性能呈下降趋势;若
,则判定解 在这段迭代过程中的性能基本稳定;
若 且 ,则判定解 为最优解, 为
预设的最终性能最小值。
[0021] 以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

当前第1页 第1页 第2页 第3页
相关技术
实时调度相关技术
改进蜂群相关技术
曾台盛发明人的其他相关专利技术