1.本发明涉及计算机技术领域,尤其涉及一种低碳自适应云主机任务调度系统。
背景技术:2.云数据中心服务器的高速发展始终以提高效率、降低成本和减少能耗为目标,随着其规模的逐渐扩大,云数据中心承担的任务数量越来越多、种类越来越繁杂。另一方面,云计算的不断发展、用户数量的不断增多,海量的数据对于后台运行是严峻的考验。云计算系统往往拥有据大规模的服务器,各种资源的计算能力和运行质量也各不相同。在此背景下,如何将任务以一种合理的策略调度到相应的虚拟机上,同时对云系统中的计算资源进行高效的分配,使得用户提交的任务能够以较快的速度和较低的成本得到处理成为一个重要的研究课题。
3.例如,中国专利cn201510422559.8公开了一种云中基于任务后移的容错任务调度方法,通过建立虚拟化云中实时容错模型代替传统的pb模型,采用任务后移策略建立了一种充分利用空闲资源的容错任务调度方法,提高容错保障下的资源利用率与容错任务的可调度性;然而该方案仅考虑了任务本身的关联性,而对主机的状态没有进行充分考虑,使得云主机的资源无法进行快速分配。
技术实现要素:4.本发明主要解决现有的技术中云主机的资源无法得到快速分配的问题;提供一种低碳自适应云主机任务调度系统,充分考虑物理主机的负载状态后进行物理主机选择,并结合任务的执行难度进行虚拟主机开启,实现云主机计算资源的快速分配。
5.本发明的上述技术问题主要是通过下述技术方案得以解决的:一种低碳自适应云主机任务调度系统,包括状态检测模块,用于检测云主机服务区域内的虚拟机的运行状态;执行模块,存储虚拟机状态的历史数据并周期性预测需要分配的计算资源配置量,根据当前周期内的主机服务区域内的虚拟机的运行状态分配下一周期的虚拟机开启数量,将执行结果传递给任务调度模块;任务调度模块,根据执行模块传递的虚拟机开启数量进行主机选择和选择虚拟机开启,进行云主机计算资源分配。
6.作为优选,所述的任务调度模块运行有任务调度算法,所述任务调度算法进行任务调度的具体方法包括:
7.s1:对主机进行动态负载调节;
8.s2:基于主机适用性和主机匹配距离进行主机选择;
9.s3:基于改进max-min算法在选择的主机上选择虚拟机开启。
10.作为优选,所述的动态负载调节包括:
11.s11:选取负载参数进行主机负载状态划分;
12.s12:记录主机负载状态的变化次数;
13.s13:基于主机负载状态的变化次数进行最大执行任务数调节。
14.作为优选,所述的负载参数包括运行队列平均数、cpu利用率、gpu利用率和内存利用率的一种或多种。
15.作为优选,步骤s2中进行主机选择的具体方法为:
16.s21:评估可用物理主机的适用性,选择每个物理主机当前开启的虚拟机总数,定义适用性划分阈值;
17.s22:对主机的适用性进行划分为高适用主机集合、低适用主机集合以及休眠主机集合;
18.s23:优先将虚拟机分配到高适用主机上,优先关闭低适用主机上的虚拟机使其进入休眠状态。
19.作为优选,步骤s2还包括以下步骤:
20.s24:将物理主机的可用资源抽象为一个三维向量;
21.s25:基于虚拟机和服务器性能向量计算虚拟资源到物理资源的性能匹配距离;
22.s26:选取匹配距离小的主机进行任务分配。
23.作为优选,步骤s3的具体方法为:
24.s31:将任务分为n个等级,每个虚拟机对应可执行的最高任务等级;
25.s32:将任务流中的任务按照任务等级从高到低排列,优先调度执行难度更高的任务。
26.本发明的有益效果是:通过检测虚拟机的状态后进行计算资源快速配置,进而进行云主机计算资源调度,在调度过程中,充分考虑物理主机的负载状态后进行物理主机选择,并结合任务的执行难度进行虚拟主机开启,实现云主机计算资源的快速分配,达到了计算资源的快速配置和分配,同时,在物理主机选择的过程中,充分考虑能耗问题,实现了降低能耗、低碳节能的目的。
附图说明
27.图1是本发明实施例的任务调度系统的结构框图。
28.图2是本发明实施例的任务调度算法的流程图。
29.图中1、用户交互模块,2、云端资源配置模块,3、执行模块,4、资源配置模块,5、任务调度模块,6、系统评估模块,7、节点状态检测模块。
具体实施方式
30.为了使本发明的目的、技术方案及优点更加清楚明白,通过下述实施例并结合附图,对本发明实施例中的技术方案的进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定发明。
31.云数据中心服务器中主要的计算资源包括cpu和gpu。
32.cpu的能量消耗由两个部分组成,分别是静态能耗和动态能耗。动态能耗是由cpu中晶体管的充放电过程引起的电能流动引起的,其大小与cpu的运行状态有关,cpu的主频指晶体管每秒钟的开关次数,主频越高充放电次数越多,晶体管的耗电量也随之增加。cpu的电压越高、主频越高,动态能耗就越大。静态能耗主要来源于晶体管的漏电以及导通(短路),在进行优化过程中作为常量不予考虑。在云平台的环境下,cpu的动态能耗与虚拟机利
用率密切相关,因此可以建立以下功耗模型:
33.p(u)=ps+pd=p
min
+(p
max-p
min
)u
34.其中ps和pd分别为cpu的静态功耗和动态功耗,p
min
为cpu空闲时的功耗,p
max
为cpu完全利用时的最大功耗,u为cpu的利用率。
35.在实际工作环境下,cpu利用率会实时变化,用u(t)表示t时刻的cpu利用率,因此在t0到t1时间间隔内,cpu的能耗可以表示为:
[0036][0037]
gpu的能耗可以分为运行时能耗和闲置时能耗,表示为:
[0038]
e=e
run
+e
idle
[0039]
其中e
run
和e
idle
分别为gpu的运行时能耗和闲置时能耗,闲置时能耗可通过闲置时gpu功率p
idle
与时间的乘积求得:
[0040]eidle
=p
idle
·
t
idle
[0041]
运行时能耗包括流处理器能耗和内存能耗两部分,流处理器能耗为流处理器单元内所有部件能耗之和乘以gpu中流处理器的个数,内存功耗等于内存单元能耗乘以内存单元的个数:
[0042][0043]
根据以上的分析,一般通过优化其动态过程降低cpu和gpu带来的能耗,这个过程中的能耗主要由虚拟机或者主机的运行过程中产生的稳定能耗、以及开关机过程带来的额外控制能耗产生,因此通过减少稳定运行的虚拟机或主机个数、以及虚拟机和主机的开关机次数可以有效降低系统的能耗。
[0044]
实施例:一种低碳自适应云主机任务调度系统,如图1所示,包括用户交互模块1和云端资源配置模块2,用户交互模块与云端资源配置模块连接,其中,用户交互模块用于用户与云端资源配置模块进行任务交互,包括资源配置查看、用户指令输入进行资源调配以及远程对虚拟机进行开闭设置,作为用户和云端资源交互的接口,帮助用户简化任务的提交过程,实时高效地获取任务的响应。
[0045]
云端资源配置模块包括执行模块3、资源配置模块4、任务调度模块5、系统评估模块6以及节点状态检测模块7,执行模块和资源配置模块组成执行配置模块,系统评估模块以及节点状态检测模块组成状态检测模块,执行模块与用户交互模块连接,执行模块用于存储云端计算资源、接收用户的反馈信息以及基于预测的下一周期的资源配置任务量以及当前周期的虚拟机使用量计算任务调度量,资源配置模块设置有任务量预测算法,存储虚拟机状态的历史数据并周期性预测需要分配的计算资源配置量,根据当前周期内的主机服务区域内的虚拟机的运行状态分配下一周期的虚拟机开启数量输送给执行模块;任务调度模块用于进行物理主机选择和虚拟机选择,并将任务调度量分配到选中的虚拟机,实现云主机计算资源的分配,与执行模块连接;系统评估模块用于记录每个批次处理任务队列的执行质量,对执行模块的任务调度量以及资源配置模块的预测任务量进行准确性评估,计算当前周期的任务量的能耗,与任务调度模块以及资源配置模块连接;节点状态检测模块用于检测主机的运行状态以及云主机服务区域内的虚拟机的运行状态,包括任务的执行状
态和资源利用率等各类信息,将这些信息汇总并分类汇报给相应的模块,辅助整个系统降低能耗。
[0046]
执行模块包括处理模块和存储模块,存储模块用于存储云端计算资源,存储模块与处理模块连接,处理模块根据计算的任务调度量调取存储模块的云端计算资源并分配给任务调度模块。
[0047]
如图2所示,任务调度模块运行有任务调度算法,任务调度算法进行任务调度的具体方法包括:
[0048]
s1:对主机进行动态负载调节;动态负载调节包括:
[0049]
s11:选取负载参数进行主机负载状态划分;将任务调度到虚拟机的过程以动态负载调节策略为基础,为系统的任务调度提供一种合理的负载评估方法,各个主机自适应负载的变化,按照计算能力获取任务实现自调节,同时避免因采用复杂的调度算法造成巨大的系统开销,成为系统性能瓶颈。充分考虑各个主机自身负载的动态变化、不同主机性能的差异以及不同任务负载需求的差异,选取了运行队列平均数、cpu利用率、gpu利用率、内存利用率作为评估所需的负载参数,并赋予不同的优先级,提供一种多级负载评估的任务调度方法。为克服云平台负载评估机制存在的不足,在尽可能提高负载评估精度的同时,减少负载评估方法本身带来的系统开销。
[0050]
首先,为了对主机的负载状况进行有效评估,需要选择多方面的负载参数作为评估的标准,其中运行队列进程数统计正在执行以及等待执行的任务数量,表明系统的状态;cpu、gpu利用率反映正在执行任务占用系统资源的大小,判断当前主机有无足够资源执行新任务。根据以上参数将主机划分为三个状态:饥饿态(hunger)、最优态(optimal)和饱和态(saturation)。
[0051]
记录主机负载状态的变化次数;在主机运行的过程中,根据自身资源及负载的变化做出相应的调整,使其运行性能达到最优实现自适应调节。各个主机通过在每个批处理任务队列处理完成时采集负载参数权衡负载状况,动态调节最大执行任务数maxtasks(任务槽)的大小,使主机在每次判决点处只能获取部分任务,而不是一次填满容量,提高系统中每个节点的动态可控性。在下一个周期重新评估自身的负载情况然后决定是否接受新的任务。频繁调节最大执行任务数会使系统不稳定,因此只有当饱和态或者饥饿态连续出现k次时才进行自适应调整,k的大小决定了系统自适应调节的粒度,在系统实际运行时可以根据云系统中实际运行情况调整k的取值。num_lightload和num_overload参数记录主机处连续出现饥饿态和饱和态的次数。
[0052]
基于主机负载状态的变化次数进行最大执行任务数调节;在每个批处理任务队列处理完成时,更新主机的num_lightload和num_overload参数,接下来通过判决当前排队任务数是否超过最大执行任务数maxtasks决定主机是否索取新任务。最后根据主机num_lightload和num_overload参数状态更新最大执行任务数maxtasks是否增加或者减少,在下一个判决点处循环同样的步骤。
[0053]
在动态负载调节策略的基础上,在任务槽还有空位的主机集合中为任务流中的每个任务选择主机,根据适用性和匹配距离两个尺度的评分,优先从评分高的主机中选择虚拟机分配任务。
[0054]
s2:基于主机适用性和主机匹配距离进行主机选择;首先评估可用物理主机的适
用性,选择每个物理主机当前开启的虚拟机总数,定义适用性划分阈值,对主机的适用性进行划分为高适用主机集合、低适用主机集合以及休眠主机集合三个集合。其中高适用主机集合上开机虚拟机的个数超过适用性划分阈值,优先将虚拟机分配到高适用主机上,以减少主机开机数量提高系统的资源利用率;低适用主机集合上开机虚拟机个数低于适用性划分阈值,优先关闭低适用主机上的虚拟机使其进入休眠状态,以降低系统能耗。
[0055]
通过适用性主机集合的划分和供需资源之间的匹配,寻找优化的可行解。将物理主机的可用资源抽象为一个三维向量。考虑到高适用主机之间的负载均衡和资源最大化利用,需要均衡主机各类资源的使用防止其出现“木桶效应”,因此需要考虑待放置虚拟机与目标主机的匹配程度。需要虚拟机的性能要求与物理服务器的性能相匹配,选择合适的物理服务器部署虚拟机,因此基于虚拟机和服务器性能向量建立虚拟资源到物理资源的性能匹配距离,匹配距离越小,物理服务器资源性能与虚拟机需求性能越匹配。不同规格的虚拟机和主机资源性能不同,因此需要对资源进行归一化处理,选取匹配距离小的主机进行任务分配。
[0056]
s3:基于改进max-min算法在选择的主机上选择虚拟机开启;将任务分为n个等级,每个虚拟机对应可执行的最高任务等级;将任务流中的任务按照任务等级从高到低排列,优先调度执行难度更高的任务。
[0057]
传统的min-min算法从任务的期望完成时间考虑,从当前任务列表中未分配任务中长度最小的任务分配到就绪时间与任务执行时间之和最小的虚拟机上,即将复杂度最低的未分配任务放置在期望完成时间最短的虚拟机上运行。偏向选择处理性能更强的虚拟机,只有当高性能虚拟机上任务过多导致等待就绪时间过长的情况下,才会逐渐使用性能较差的虚拟机。
[0058]
本方案改进的max-min算法。将任务分为n个等级,每个虚拟机对应可执行的最高任务等级,其中n个等级的任务按照执行难度进行排列,其中等级1的任务执行难度最低,等级n的任务执行难度最高。根据max-min算法思想,将任务流中的任务按照任务等级从高到低排列,优先调度执行难度更高的任务。
[0059]
本发明的任务量预测算法进行下一周期资源配置的任务量预测的具体方法为:将各个类型的任务在每个周期内到达系统的任务量数值汇总在向量d中;采用三次指数平滑算法进行任务量非线性预测;采用arima预测模型进行任务量线性预测;采用复合预测模型进行权重系数分配;将三次指数平滑算法的预测结果和arima预测模型的预测结果结合权重系数后,输出综合的任务量预测结果。
[0060]
采用本发明的任务调度方法,实现了云主机计算资源的快速分配,实现了降低能耗的目的。
[0061]
以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。