一种面向节能的启发式云计算资源分配与调度方法与流程

文档序号:17690757发布日期:2019-05-17 21:01阅读:150来源:国知局
一种面向节能的启发式云计算资源分配与调度方法与流程

本发明属于计算机领域,专注于云计算资源分配与任务调度问题,尤其涉及一种面向节能的启发式云计算资源分配与调度方法。



背景技术:

目前有相当多的云计算资源分配与调度方法,具体如下:

采用动态电压频率调节技术(Dynamic Voltage and Frequency Scaling,缩写DVFS)和动态功耗管理技术(Dynamic Power Management,缩写DPM)。它们都是一种硬件技术。目前部分服务器的处理器支持了DVFS技术,它是指在处理器利用率较低时,降低处理器的电压或频率,降低处理器的性能,使其保持在低功耗状态;而当处理器的负载较高时,提高处理器的电压或频率,提高处理器的性能,而此时,处理器的功耗也相对较高。通过这种针对处理器的负载进行动态的调节处理器电压或频率的方式,实现能耗的降低。DPM技术是指在服务器组件没有负载时,将其切换到休眠状态或关闭状态,从而实现节能。但是目前很多厂商为保证服务器性能的稳定,并没有配备这些技术,因此,在装配了普通服务器的企业或团体内部的私有云中,这些技术并不能得到应用。

通过服务器动态整合来降低能耗。由于服务器资源利用率较低时,依然会消耗较高的能耗,因此可以提高服务器资源利用率,提高资源能源效率,降低能耗。虚拟化技术的出现使得虚拟机可以进行动态迁移,利用这种技术可以实现服务器的整合,将低负载服务器上的虚拟机迁移到其他低负载服务器上,这样可以将空负载服务器关闭,并实现部分服务器资源利用率提高。虽然这种服务器动态整合技术可以提高服务器资源利用率,但是虚拟机迁移必然会影响用户体验,如任务执行时间的延长,因此这种方法并不适合应用于一些时间约束较高的场景。



技术实现要素:

本发明的目的是提供一种启发式的面向节能的云资源供给与调度方法,该方法能够有效的为云计算用户发出的任务请求寻找到资源分配调度的近似最优解,有效的降低数据中心能耗。

实现本发明目的的具体技术方案是:

一种面向节能的启发式云计算资源分配与调度方法,特点是该方法包括以下具体步骤:

步骤1:初始化阶段

为了加速任务调度的产生,使用改进的最佳适应方法MBFD或首次适应方法FF为云计算数据中心收到的所有用户任务产生初始调度。

步骤2:优化阶段

实例化数个相互独立的调度优化器,每个调度优化器分别以步骤1中产生的初始调度为输入独立地进行局部优化,所有独立的调度优化器协作产生全局搜索空间中的近似最优调度;其中,具体包括:

(1) 单调度优化器优化:单个调度优化器以输入的初始调度为基础,迭代式的利用任务选择、服务器分组和调度演化三个操作对其进行局部优化;

(2) 多调度优化器协作优化:当每个调度优化器产生其局部优化调度后,在所有调度优化器产生的调度中比较并选择能耗最低且任务接受率最高的调度,将其作为初始调度,进行步骤(1)的操作;当每个调度优化器产生其局部优化调度后,在所有调度优化器产生的调度中比较并选择能耗最低且任务接受率最高的调度,将其作为初始调度,再进行步骤(1)的操作;周而复始,当操作步骤(1)次数达到10-15次时,得到全局搜索空间中的近似最优调度。

所述产生初始调度,即产生一个物理服务器到用户任务的初始分配映射。

所述单调度优化器,在接收到初始调度后,根据初始调度,确定数据中心为每个用户任务分配的服务器资源,同时,每个服务器与分配给它的任务构成了该服务器上的局部调度。

所述任务选择操作,利用初始调度为每一个服务器选择一个目标任务:在每个服务器上,为每个任务计算它和该服务器上所有其它任务之间的重叠执行时间和,具有最小重叠执行时间和的任务被选择为该服务器的目标任务。

所述服务器分组操作,将数据中心服务器进行两两随机分组,得到不同的两服务器组;利用输入步骤1的初始调度,每服务器组中两个服务器上的局部调度信息构成该服务器组的局部调度。

所述调度演化操作,在每服务器组中,执行演化操作产生4个不同的子代调度;每个子代调度按如下方式产生:

(1)将步骤1的初始调度作为第一个子代调度;

(2)将第一个服务器的目标任务迁移到第二个服务器上,并修改初始调度中对应于该操作的局部调度信息得到第二个子代调度;

(3)将第二个服务器的目标任务迁移到第一个服务器上,并修改初始调度中对应于该操作的局部调度信息得到第三个子代调度;

(4)两个服务器之间交换目标任务,并修改初始调度中对应于该操作的局部调度信息得到第四个子代调度;

产生4个子代调度后,单调度优化器对每个子代调度进行仿真,计算能耗信息和任务接受率,并选择能耗最低且任务接受率最高的子代调度替代原初始调度。

所述迭代式的利用任务选择、服务器分组和调度演化三个操作次数为30-50次。

本发明单调度优化器是一个迭代式操作,它在一次迭代后,选择能耗最低,任务接受率最高的子代调度作为新的初始调度,重复任务选择、服务器分组和调度演化操作,直到一定迭代次数结束。

本发明多调度优化器协作优化需要每个调度优化器都独立的进行随机化分组操作,这样才保证能够在全局空间中搜索近似最优调度。

本发明的有益效果在于:本发明能够在云计算数据中心固定物理服务器资源的约束条件下搜索到近似最优调度,极大地降低能耗、提高用户请求接受率。

附图说明

图1是本发明流程图;

图2为本发明服务器分组示意图;

图3为本发明调度演化操作流程图;

图4为本发明单调度优化器优化执行过程图。

具体实施方式

结合以下具体实施例和附图,对本发明作进一步的详细说明。

本发明是一种面向节能的启发式云资源分配与调度方法,为用户提交的任务请求产生节能的调度。首先通过初始化方法产生初始调度,然后通过演化优化过程对初始调度进行优化:为服务器选择目标任务,对服务器进行随机分组,并对每个分组产生局部调度后代,通过仿真选择最优局部调度替换原始该分组中的调度。多个优化执行器单独工作,寻找全局最优调度。

本发明包括以下步骤,具体流程如图1所示:

步骤1:初始化阶段

为了加速任务调度的产生,使用现有方法如改进的最佳适应方法(MBFD)或首次适应方法(FF)为云计算数据中心收到的所有用户任务产生初始调度。

步骤2:优化阶段

该阶段实例化多个相互独立的调度优化器,每个调度优化器分别以步骤1中产生的初始调度为输入独立地进行局部优化,所有调度优化器协作产生全局搜索空间中的近似最优调度;具体包括:

(1) 单调度优化器优化:单个调度优化器以该阶段输入的初始调度为基础,迭代式的利用任务选择、服务器分组和调度演化三个操作对其进行局部优化。

(2) 多调度优化器协作优化:当每个调度优化器产生其局部优化调度后,在所有调度优化器产生的调度中比较并选择能耗最低的调度,将其再次作为初始调度,进行步骤(1)的操作;当每个调度优化器产生其局部优化调度后,在所有调度优化器产生的调度中比较并选择能耗最低且任务接受率最高的调度,将其作为初始调度,再进行步骤(1)的操作;周而复始,当操作步骤(1)次数达到10-15次时,得到全局搜索空间中的近似最优调度。

其中,步骤1中初始化阶段:数据中心调度程序需要为其接收到的所有用户请求产生一个调度,即产生一个用户请求到服务器的映射对,将每一个用户请求映射到一个服务器上。但是如果枚举用户请求到服务器映射的所有组合,这是一种没有意义的做法,因此需要某种方法对为了尽可能快的产生一个节能调度。采用现有的一些方法,如最佳适应方法MBFD或首次适应方法FF,为所有用户请求产生一个初始调度,然而通常这两种初始化方法产生的调度依然存在很大的优化空间,如能耗依然很高,不能全部接受用户请求,因此可以采取一些方法对初始调度进一步优化,使其实现这些目标的最优。

其中,步骤2的(1)中的任务选择:当前某个服务器组中有两个服务器S1和S2,两台服务器上都初始分配了若干个任务。采用如下方法为每个服务器选择一个目标任务:在每个服务器上,为每个任务计算它与其他所有任务的并行执行时间之和,例如,某个任务1的执行时间区间为[],任务2的执行时间区间为[] ,如果它们之间满足关系,且,则这两个任务存在一段并行执行时间区间[],它们的并行执行时间为。两个任务之间还存在其他并行执行关系,这里不再枚举。当为每个任务计算出它与其他所有任务并行执行时间之和后,选择并行执行时间之和最小的任务作为目标任务。这是基于这样的想法,如果在某个服务器上,存在一个任务与其他任务的并行执行时间较短,那么这个服务器在这个任务执行的过程中资源利用率较低的可能性较大,那么将这个任务迁移出去,可能会使该服务器在这段时间达到休眠状态。同时,与其他任务并行执行时间最短的任务迁移到其他服务器上时,使其他服务器过载的可能性也较低。通过以上过程可以为每个服务器选择一个目标任务。如图3所示,服务器S1选择了任务k,服务器S2选择任务m。

其中,步骤2的(1)中的服务器分组:由于对用户请求到服务器映射的所有组合进行枚举是个非常耗时的任务,而且很难同时实现能耗和用户请求接受率的最优。因此采取启发式的方法,专注于初始调度中的局部调度,通过对局部调度进行优化实现对全局调度的优化。具体做法如下:对初始调度中的服务器进行两两随机分组,每个组中都包含两台服务器,每个服务器上都有若干个分配它的任务。如图2所示,服务器1和n-1构成一个服务器组,服务器k和m构成一个服务器组。每个服务器组中两台服务器和其中的任务集合构成了一个局部调度。

其中,步骤2的(1)中的调度演化:当所有服务器都随机形成了两服务器组,接下来可以采用演化算法中演化的思想,对这个服务器组中的局部调度进行局部优化。具体做法如图3所示:服务器组选定目标任务后便进行演化操作,服务器组中两个服务器通过交换或迁移任务的方式产生4个子代调度,为了保证演化后局部调度不会退化,将原始调度作为一个子代保存。接着,其中一个服务器将其目标任务迁移到另一个服务器上,产生第二个子代调度。类似的,第二个服务器将目标任务迁移到第一个服务器上产生第三个子代调度。最后,两个服务器相互交换目标任务,产生第四个子代调度。如图3所示,第一个子代调度即使原始调度的一份拷贝,服务器S1将任务k迁移到服务器S2上产生第二个子代调度,服务器S2将任务m迁移到S1上产生另一个子代,最后,S1和S2交换任务k和m产生第四个调度。当服务器组产生4个子代调度后,对每一个子代局部调度进行仿真,计算能耗和任务接受率,选择能耗最低,任务接受率最高的子代调度替换原始调度。

其中,步骤2的(1)中的单调度优化器优化:由于单个调度优化器对初始调度中的所有服务器都进行了分组,那么它可以通过对每个分组进行演化操作产生每一对服务器上的局部调度,所有的局部调度合并便构成了数据中心对所有用户请求的新调度。为了对该调度进一步优化,让单个调度优化器再次以新产生的调度为初始调度,重复分组和演化操作固定次数,最终产生一个具有高能效的调度。图4所示算法详细介绍了单调度优化器的过程,其中servers是数据中心所有服务器,tasks是数据中心接收到的所有用户请求,mapping是初始化算法产生的初始调度,即用户请求到服务器的映射对,niter是单调度优化器进行迭代优化的次数。

其中,步骤2的(2)中的多调度优化器协作优化:由于单个调度优化器针对自己的调度进行迭代优化,很容易陷入局部最优,为了避免这种情况的发生,同时启动多个执行器,让它们独立的对初始调度进行优化,由于分组随机性的存在,多个调度优化器协同工作可以尽可能的避免局部最优。

本发明能够在云计算数据中心固定服务器资源的约束条件下搜索到最优调度,极大地降低能耗,提高用户请求接受率。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1