加入收藏 | 设为首页 | 会员中心 | 我要投稿 天瑞地安资讯网 (https://www.52baoding.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 云计算 > 正文

一种云计算环境下的任务调度方法及系统与流程

发布时间:2022-11-02 15:30:53 所属栏目:云计算 来源:转载
导读:
本发明涉及云计算系统中任务调度计算领域,尤其涉及一种云计算环境下的任务调度方法及系统。
背景技术:
云计算将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获

一种云计算环境下的任务调度方法及系统与流程

本发明涉及云计算系统中任务调度计算领域,尤其涉及一种云计算环境下的任务调度方法及系统。

背景技术:

云计算将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务,云计算的基本原理是通过网络,将庞大的计算处理任务自动拆分成无数个较小的子任务,再交由多部服务器组成的庞大系统经搜寻、计算分析之后,将处理结果回传给用户,在这个过程中,提供庞大的网络被称之为“云”,云计算中的任务数量非常巨大。

云计算环境下的任务调度是云计算平台的一个重要组成部分,任务调度的实质是在给定的条件下,通过一定的策略或者算法将多个任务合理的分配到计算机资源上,以满足用户的需求(该需求通常定义为用户的服务质量)。云环境下的任务调度是一个np难问题,其目标是在任务调度的解空间中寻找近似最优解,使得总任务的执行时间最小且负载均衡。国内外学者针对这一问题,提出了一些算法以求解该问题,这些算法包括min-min、max-min、以及suffrage等启发式算法,基于仿生原理的粒子群算法、蚁群算法、遗传算法、以及禁忌搜索算法等智能调度算法。其中传统的任务调度算法在某一方面表现较好,但在其它方面还存在一定的不足。例如智能调度算法在寻找最优解的过程中,容易陷于局部最优解,并且在负载均衡度和收敛速度等方面并不理想。此外,在实际生活中,任务的产生往往会因为任务执行的迫切程度而赋有不同的优先权,而这些算法在寻找任务最优解的时候,往往忽略了任务的优先权。

因此,如何考虑任务优先权实现更好的任务调度,成为一个急需解决的问题。

技术实现要素:

本发明目的在于提供一种云计算环境下的任务调度方法及系统,以考虑任务优先权实现更好的任务调度。

为实现上述目的,本发明提供了一种云计算环境下的任务调度方法,包括以下步骤:

s1:将所有任务按照优先权进行分组,得到任务组集;

s2:选取所述任务组集中优先权最高的任务组,分别预计该任务组中每个任务分配至各虚拟机中被执行完成所需的最小时间;

s3:按照该所需的最小时间对该任务组中的每个任务进行排序得到一个任务序列;

s4:选取所述任务序列中所需完成时间最小的任务和所需完成时间最大的任务组成一个任务对,将该任务对捆绑分配至对应的虚拟机中;

s5:在所述任务序列中删除该任务对,重复上述s4,直至该任务序列中的所有任务分配成功;

s6:选取所述任务组集中优先权较高的任务组,重复上述s2-s5,直至所有任务分配完成。

优选地,所述s1中,所述优先权根据任务的重要程度确定,任务的重要程度越高,该任务对应的优先权越高。

优选地,所述s2中,所述预计该任务组中每个任务分配至各虚拟机中被执行完成所需的最小时间的计算公式为:

ect(i,j)=ts(ti)/mips(sj);

式中,ti表示第i个任务,sj表示第j台虚拟机,ect(i,j)表示第i个任务在第j台虚拟机上完成所需的时间,ts(ti)表示任务i的大小,mips(sj)表示虚拟机j的处理能力。

优选地,所述s2之后还包括步骤:建立各任务与完成该任务所需时间最小的虚拟机之间的对应关系,若存在一个以上的任务对应同一个虚拟机,选取所需响应时间最小的任务对应该虚拟机。

优选地,所述s4中,将任务对捆绑分配至对应的虚拟机中之后,更新每个虚拟机的计算时间。

优选地,所述s1中,所述优先权根据任务的重要程度确定,任务的重要程度越高,该任务对应的优先权越高。

作为一个总的技术构思,本发明还提供一种云计算环境下的任务调度系统,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。

本发明具有以下有益效果:

本发明提供一种云计算环境下的任务调度方法及系统,包括将所有任务按照优先权进行分组,得到任务组集;选取任务组集中优先权最高的任务组,分别预计该任务组中每个任务分配至各虚拟机中被执行完成所需的最小时间;按照该所需的最小时间对该任务组中的每个任务进行排序得到一个任务序列;选取任务序列中所需完成时间最小的任务和所需完成时间最大的任务组成一个任务对,将该任务对捆绑分配至对应的虚拟机中;在任务序列中删除该任务对,并重复该选取任务对进行分配的工作,直至该任务序列中的所有任务分配成功;选取任务组集中优先权较高的任务组,重复上述分配工作,直至所有任务分配完成;该方法考虑了任务优先权,能实现更好更快速的任务调度,能有效解决任务调度中负载不均衡的问题。

下面将参照附图,对本发明作进一步详细的说明。

附图说明

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明优选实施例的云计算环境下的任务调度方法流程图。

具体实施方式

以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。

本发明中,任务的总体完成时间指所有任务的完成时间之和。任务的总执行时间指从第一个任务执行调度开始,到最后一个任务执行结束,所经历的时间。系统资源利用率该指标用于衡量调度中心资源的空闲程序,也用于评价系统负载是否均衡。任务响应时间指任务从进入云计算系统到任务执行完成所花费的时间。通常来说,任务的响应时间越短越好。

实施例1

参见图1,本实施例提供一种云计算环境下的任务调度方法,包括以下步骤:

s1:将所有任务按照优先权进行分组,得到任务组集;

s2:选取任务组集中优先权最高的任务组,分别预计该任务组中每个任务分配至各虚拟机中被执行完成所需的最小时间;

s3:按照该所需的最小时间对该任务组中的每个任务进行排序得到一个任务序列;

s4:选取任务序列中所需完成时间最小的任务和所需完成时间最大的任务组成一个任务对,将该任务对捆绑分配至对应的虚拟机中;

s5:在任务序列中删除该任务对,重复上述s4,直至该任务序列中的所有任务分配成功;

s6:选取任务组集中优先权较高的任务组,重复上述s2-s5,直至所有任务分配完成。

需要说明的是,本实施例中,优先权根据任务的重要程度确定,任务的重要程度越高,该任务对应的优先权越高。

上述的云计算环境下的任务调度方法考虑了任务优先权,能实现更好更快速的任务调度,能有效解决任务调度中负载不均衡的问题。

应当指明的是,用户提交作业到云调度中心,假设该作业可以分成n个相互独立的任务集合t={t1,t2,…,ti,…,tn},其中ti代表第i个任务。由于提交到调度中心的任务具有优先约束关系即优先权,记为p={1,2,…,i,…,n},p集合中所对应数值越大,表明其优先级越高即该任务应当优先调度。ts(ti)表示任务ti的大小(长度)。

假设调度中心有多台服务器,这些服务器一共可提供m台虚拟机(可看成是计算资源),用于处理提交到调度中心的任务,这m台虚拟机的集合可表示为s={s1,s2,…,sm}。其中参数m为虚拟机的数目,si代表第i台虚拟机,mips(si)表示虚拟机si的处理能力即执行速度。

将作业分解后的n个相互独立的任务调度到m台不同处理能力的虚拟机上执行,假设一个任务只能分配到一台虚拟机去执行,任意一台虚拟机在某一个时间段只能执行一个任务,任务ti被调度到虚拟机sj上执行,

则,s2中,预计该任务组中每个任务分配至各虚拟机中被执行完成所需的最小时间的计算公式为:

ect(i,j)=ts(ti)/mips(sj);

式中,ti表示第i个任务,sj表示第j台虚拟机,ect(i,j)表示第i个任务在第j台虚拟机上完成所需的时间,ts(ti)表示任务i的大小,mips(sj)表示虚拟机j的处理能力。

作为本实施例优选的实施方式,s2之后还包括步骤:建立各任务与完成该任务所需时间最小的虚拟机之间的对应关系,若存在一个以上的任务对应同一个虚拟机,选取所需响应时间最小的任务对应该虚拟机。

具体地,以云计算中有8个任务(t1,t2,t3,t4,t5,t6,t7,t8)和两个资源(s1,s2)为例进行上述调度步骤的举例说明,其中各个任务的优先权以及在资源上的预计完成时间如下表1所示:

表1任务的优先级以及在资源上的预计完成时间参数表

首先,根据优先权进行分类,得到高优先权组t1={t1,t2,t3,t4},由表1可知,t1任务的最小完成时间为:mct(1)=1,mct(2)=2,mct(3)=15,mct(4)=22.5,对任务组t1在时间上做贪心策略(找到最小完成时间中最小者和最大者),即将mct(1)所对应的任务t1和mct(2)所对应的任务t2捆绑形成一个任务对,并将该任务对分配到对应的资源s2上,并更新s2上的就绪时间rt(2)=23.5,删除任务t1和t4,更新每个虚拟机的计算时间,并更新ct矩阵(上述表1)得到表2,如下所示。

表2第一次更新后的ct矩阵表

由表2可知,mct(2)=4,mct(3)=30,则将任务t2和t3(t2和t3组成任务对)分配到资源s1上,更新ct矩阵得到表3,如下表所示。

表3第二次更新后的ct矩阵表

此时,任务组t1中的任务已经分配完毕,再调度优先级为1的任务组,由表3可知mct(5)=53.5,mct(6)=63.5,mct(7)=73.5,mct(8)=123.5,此时将任务t5和t8(t5和t8组成任务对)分配到资源s2上,更新ct矩阵得到表4所示。

表4第三次更新后的ct矩阵表

最后将任务t6和t7(t6和t7组成任务对)分配到资源s1上,完成整个任务的调度。根据p-min-min-max算法,任务调度的顺序次序为:s2(t1)->s2(t4)->s1(t2)->s1(t3)->s2(t5)->s2(t8)->s1(t6)->s1(t7)任务的总执行时间为在资源s1上所花费的时间214,资源s1的利用率50%,资源s2的利用率为50%,任务的平均响应时间为:

[1+(1+22.5)+(1+22.5+30)+(1+22.5+30+100)+4+(4+30)+(4+30+80)+(4+30+80+100)]/8=74.69。

实施例2

本实施例从任务总体完成时间、任务的总执行时间、系统资源利用率、任务平均响应时间、以及服务质量方面验证本发明提供的云计算环境下的任务调度方法的性能。

实验的硬件环境为intel(r)core(tm)i5dual-core3.4ghz,内存4gb;软件环境为windows7,优选地,本实施例选择cloudsim作为仿真工具,cloudsim支持大型云计算的基础设施的建模与仿真。本实施例采用计算的算法有五种,分别为min-min,max-min,p-min-min,p-max-min和p-min-min-max。

从任务总体完成时间方面,经过实验,该五种算法的任务总体完成时间如下表5所示:

表5五种算法的任务总体完成时间

从上表可知云计算系统组成,在任务总体完成时间方面,min-min算法表现最好,p-min-min-max算法次之,而max-min算法最差。其原因为:min-min算法总是将任务调度到最快的虚拟机上执行,从而导致min-min算法在任务总体完成时间方面表现最好;max-min算法最差,其原因在于max-min算法优先调度大任务;p-min-min-max在任务总体完成时间方面处于min-min和max-min算法中间,其原因是p-min-min-max捆绑“小任务”和“大任务”一起调度。此外,min-min和max-min算法存在一个不足即没有考虑任务的优先级,p-min-min算法和p-max-min算法正好弥补了这一不足。上表同时也表明,随着任务数量的增长,其任务总体完成时间也显著增长。

从任务的总执行时间方面,经过实验,上述五种算法的任务总执行时间如下表6所示:

表6五种算法的任务总执行时间

表6表明,在任务总执行时间方面,当任务不考虑优先级时,max-min算法优于min-min算法,其原因在于min-min算法总是将小任务调度到处理速度快的虚拟机(资源)上运行,造成处理速度慢的虚拟机(资源)空闲,而快的虚拟机(资源)负载过重,进而在任务总执行时间方面性能最差。p-min-min-max算法在任务总执行时间方面表现最好,原因在于p-min-min-max算法捆绑“小任务”和“大任务”一起调度,即将处理速度快的虚拟机和处理速度慢的虚拟机有效利用起来,进而在这方面表现最好。此外,min-min和max-min算法存在一个不足即没有考虑任务的优先级,p-min-min算法和p-max-min算法正好弥补了这一不足。表6同时也表明,随着任务数量的增长,其任务总执行时间也显著增长。

从系统资源利用率方面,经过实验,上述五种算法的系统资源利用率如下表7所示:

表7五种算法的系统资源利用率

本实施例中,有两个资源记为s1和s2,定义系统的资源利用率(记su)如下:

其中,参数

分别表示资源s1和s2的资源利用率。su的值越高,说明系统资源利用率不均衡;反之,如果su的值越低,说明系统资源利用率均衡。

根据上表可知,表7表明,在系统资源利用率方面,p-min-min-max表现最好(值越低说明系统负载越均衡,性能也越好),max-min次之,min-min最差。其原因为:p-min-min-max算法捆绑“小任务”和“大任务”一起调度,即兼顾了处理速度快的资源又兼顾了处理速度慢的资源,从而导致最佳的负载平衡。min-min算法总是调度任务到最快的资源上执行,导致处理速度慢的资源上无任务执行或者任务较少,从而导致负载不均衡。p-min-min和p-max-min算法分别是在min-min和max-min算法的基础上考虑了任务的优先级。

从任务平均响应时间方面,经过实验,上述五种算法的任务平均响应时间如下表8所示:

表8五种算法的任务平均响应时间

实验结果表明,在任务的平均响应时间方面,min-min算法最好,其次是p-min-min算法,max-min算法最差,其原因在于:min-min算法优先调度小任务使得大任务的等待时间增加,从而使得任务的平均响应时间减小,而max-min算法优先调度大任务去执行,正好与min-min算法相反。p-min-min算法采用“捆绑小任务和大任务”一起执行调度的策略,所以其性能处于中间。p-min-min和p-max-min算法分别是在min-min和max-min算法的基础上考虑了任务的优先级。表8同时也表明,随着任务数量的增长,其任务平均响应时间也显著增长。

从服务质量方面,需要说明的是,对于不同的任务调度算法,而服务质量的定义也不同,如任务的响应时间,任务的执行时间等都可以用来度量用户的服务质量。一般来说,服务质量越高,该算法在某方面的性能越好。反之,算法在某方面的性能越差。在本实施例中,服务质量的定义如下:

其中,t1表示任务总执行时间,当t1值越大,算法所提供的服务质量越差;t2为任务平均响应时间,当t2值越大,算法所提供的服务质量越差;n表示在任务调度的过程中,资源上分配的任务的逆序数之和,n值越大表明其服务质量越差;例如:当资源s1上的某次任务调度后,其任务执行序列为(t1->t2->t5->t6),其中t2,t5的优先级为2,t1,t6的优先级为1,此时该序列上的逆序数n=2。

经过实验,上述五种算法的服务质量如下表9所示:

表9五种算法的服务质量

表9实验结果表明,在五个算法所提供的服务质量方面,p-min-min-max最好,p-max-min第二,p-min-min第三,min-min第四,max-min最差。其原因可解释如下:min-min和max-min算法较差,是因为其在调度任务执行时,未考虑任务的优先级。p-min-min-max在提供的服务质量方面最好,其原因在于:一方面p-min-min-max算法考虑了任务的优先级,另一方面p-min-min-max在任务总执行时间和任务平均响应时间方面具有一定的优势。

实施例3

与上述方法实施例相对应地,本实施例提供一种云计算环境下的任务调度系统,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

(编辑:天瑞地安资讯网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!