一种多层嵌套虚拟化结构及其任务分配方法与流程

文档序号:11774178阅读:514来源:国知局
一种多层嵌套虚拟化结构及其任务分配方法与流程

本发明属于云计算技术领域,尤其涉及一种多层嵌套虚拟化结构及其任务分配方法。



背景技术:

作为21世纪it行业最受瞩目的技术,云计算给人们的生产生活带来了诸多便利。然而,随着云计算的不断发展,云用户的不断增多,云计算传统架构和运营模式的不足也开始显现。在云计算面临的诸多问题中,云资源利用率不足、云资源碎片过多问题最为严重。在资源隔离的作用下,作为商品租出的云服务器的空闲资源片在租约到期前将一直处于闲置状态,并且无法被云服务提供商回收利用。而随着租出的云服务器数量的不断增多,这些分散的资源碎片将导致巨大的资源浪费问题。如何高效的利用这些分散的资源片便成为了云计算所面临的一个重要挑战。在诸多技术中,虚拟化在提高硬件资源利用率方面性能表现出色。而作为传统虚拟化的升级,嵌套虚拟化技术允许一个虚拟机操作系统运行于另一虚拟机操作系统;为解决云服务器资源利用率不足问题提供了新的解决方向。除了虚拟化技术,一个性能优良的云环境下的任务分配算法也是解决云资源利用率不足的关键。基于负载均衡的思想,通过合理的设计,任务分配算法能在资源调度层面提高云资源的利用率。

综上所述,现有技术存在的问题是:云计算环境下计算资源利用率不足、云资源碎片过多,导致资源的浪费问题,增加软、硬件维护成本,云服务的花销等。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种多层嵌套虚拟化结构及其任务分配方法。

本发明是这样实现的,一种多层嵌套虚拟化结构,所述多层嵌套虚拟化结构包括:两层嵌套虚拟化播部分和多层嵌套虚拟化部分。

进一步,所述多层嵌套虚拟化结构中具有多个嵌套的hypervisor层;高层嵌套虚拟机相对于第二层嵌套虚拟机额外需要的计算资源定义为epsi,j(i≥3);其中i表示嵌套层所在结构的层数,j表示同一嵌套层的虚拟机编号;同时也将第i层hypervisor的性能开销映射进epsi,j(i≥3)中;其中idlei,j表示第i层编号为j的虚拟机的空闲资源片。

本发明的另一目的在于提供一种利用所述多层嵌套虚拟化结构的任务分配方法,所述任务分配方法的表达式为:

其中:

集合v={v1,v2...,vk}:是一个待处理任务组成的集合,其中任务的数目为k个;

w=(vi):表示处理任务vi预计所需要的处理时间;

w=(vi,p):表示虚拟机p处理任务vi预计所需要的处理时间;

ts=(vi,p):表示虚拟机p处理任务vi开始的时间;

tf=(vi,p):表示虚拟机p处理任务vi结束的时间,满足以下公式:

tf(vi,p)=ts(vi,p)+w(vi,p);

prec(i,p):表示虚拟机p在处理任务vi前,所需处理的任务的集合;如果在处理任务vi前虚拟机p没有需要处理的任务,prec(i,p);并且虚拟机p在处理完prec(i,p)中的任务之前,不会开始处理任务vi;

avail=(vi,p):虚拟机p处理完prec(i,p)中的任务之后,并且准备好执行任务vi的时间:

avail=(vi,p)即为执行完prec(i,p)中最后一个任务的时间:

eft=(vi,p):表示虚拟机p处理任务vi最早的结束时间,即为:

frt(i):表示在执行任务vi前,该云服务器预期租约到期的时间,当执行完任务vi后,得到frt(i)′;

time:表示执行任务vi所增加的服务器的租期,即为:

time=(frt(i)′-frt(i));

cost(vi,pj)示执行任务vi所需要支付的花销,定义为:

cost(vipj)=time*mtu;

其中mtu内租用某一配置下的云服务器所需要的花销;

h={host1,host2...,hostk}:表示已租用云服务器组成的集合。

本发明的另一目的在于提供一种利用的所述云资源优化方法,所述云资源优化方法包括:

(1)嵌套虚拟机创建调度表的生成

多层嵌套虚拟化中,最高嵌套虚拟机所在的层次数,应为满足公式的n的最大值:

epsn<idle2,1,(n>2);

最终剩余的空闲资源定义为:idle′1,1,得到多层嵌套虚拟化结构的资源损耗总和,并定义为wstn:

其中n表示嵌套的最高层数,k表示两层嵌套结构部分的标准l2层虚拟机的数目;

通过下式得到最优化嵌套结构的嵌套层数j,并得到嵌套虚拟机创建调度表:

其中:vmi,j:表示第i层的编号为j的虚拟机,云服务器作为第一层虚拟机定义为vmi,j;

idlei,j:表示第i层编号为j的虚拟机的空闲资源片;其中idle1,1表示云服务器vm1,1的空闲计算资源;

epsi,j(i≥3):表示第i层编号为j的虚拟机在执行某个任务时;

min_resourcei:表示第i层客户虚拟机为处理某个任务所需要最少的计算资源,并且min_resourcei至少为运行虚拟机操作系统所需的资源;

rn:表示嵌套n层时,多层嵌套虚拟化部分占用idle1,1用于承载所有嵌套虚拟机的计算资源部分。

(2)任务调度表的生成:

在任务vi进行分配的过程中,在当时的任务调度图下,其max[cost]和max[eft(vi,p)]是固定的,找到公式的最小值,其对应的虚拟机p就是最适合执行任务vi的虚拟机。当任务vi为该批任务的最后一个待分配的任务,即得到该批任务的任务调度表。

进一步,所述虚拟机创建调度表的生成包括:

首先,对所租云服务器的计算资源进行统计并分析待处理任务的特性;并根据所收集的信息,计算出云服务器预计空闲资源量;

在得到云服务器预计资源空闲量后,根据所依赖的嵌套虚拟化结构,生成嵌套虚拟机创建调度表。

所述任务调度表的生成包括:

首先,对所有可使用的任务处理虚拟机进行遍历;并统计现有任务处理虚拟机的任务处理情况。

在得到任务处理虚拟机的任务处理情况后,根据所依赖任务分配算法计算得到任务调度表。

本发明的另一目的在于提供一种应用所述云资源优化方法的云服务器。

本发明的优点及积极效果为:通过对现有嵌套虚拟化结构及其任务分配方法的改进,多层嵌套虚拟化结构可有效地减少云资源碎片的产生,即能有效地提高云资源的利用效率。同时,任务分配方法能在提高云资源利用效率的基础上,达到任务处理效率和花销的折中。本发明的嵌套虚拟化结构和任务分配算法都在下面有性能分析。由于现有的虚拟化技术的限制,只能最多嵌套第三层虚拟机,且第三层的嵌套虚拟机性能损耗严重。所以没法用实验来对本发明的多层嵌套虚拟化结构与传统的嵌套虚拟化结构进行性能对比,只能用理论分析;任务分配算法与传统的启发式任务分配算法和循环分配方法分析见附表格。

表1:本发明的任务分配算法完成批任务执行的最早时间(该批任务最大的eft来体现)表现中等,性能优于循环分配算法而劣于传统启发式分配算法。

表2:本发明的任务分配算法对于单个任务的处理最早时间(该批任务的schedulelength来体现)性能优于循环分配算法而劣于传统启发式分配算法。

表3:本发明的任务分配算法对于执行批量任务所需花销方面,优于传统的启发式分配算法和循环分配算法。

表1

表2

表3

综上,本发明的任务分配算法能在提高云资源利用率的基础上,达到任务处理效率与花销的折中。

附图说明

图1是本发明实施例提供的现有的多层嵌套虚拟化结构示意图;

图中(a)两层嵌套虚拟化结构;(b)多层嵌套虚拟化结构。

图2是本发明实施例提供的云资源优化方法流程图。

图3是本发明实施例提供的任务分配例子示意图;

图中:(a)云服务器1;(b)云服务器2。

图4是本发明实施例提供的多层嵌套虚拟化结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明解决了云计算环境下计算资源利用率不足、云资源碎片过多等问题。结合云计算环境下的任务分配需要,采用多层嵌套虚拟化的云资源优化方法;并且,包含一个新的嵌套虚拟化结构和一个适用于嵌套云环境下的任务分配方法;通过对现有嵌套虚拟化结构及其任务分配方法的改进,多层嵌套虚拟化结构可有效地减少云资源碎片的产生,即能有效地提高云资源的利用效率。同时,任务分配方法能在提高云资源利用效率的基础上,达到任务处理效率和花销的折中。

下面结合附图对本发明的应用原理作详细的描述。

如图1所示,本发明实施例提供的多层嵌套虚拟化结构将hypervisor层和直接运行在其管理下的虚拟机操作系统层统称为一层,并用li表示。其中i表示嵌套的次数,并且l0表示底层物理硬件层,l1则表示roothypervisor层和其对应的regularvm层。两层嵌套虚拟化结构的优势在于只需要引入l2hypervisor,即客户hypervisor层,所有l2虚拟机将直接受其控制,大大降低了结构的复杂度和结构实现的难度;而在多层嵌套虚拟化结构中,通过递归嵌套,结构中具有多个嵌套的hypervisor层;高层嵌套虚拟机相对于第二层嵌套虚拟机额外需要的计算资源定义为epsi,j(i≥3);其中i表示嵌套层所在结构的层数,j表示同一嵌套层的虚拟机编号。同时也将第i层hypervisor的性能开销映射进epsi,j(i≥3)中。

其中idlei,j表示第i层编号为j的虚拟机的空闲资源片。

下面结合附图对本发明的应用原理作进一步的描述。

如图4所示,本发明实施例设计的多层嵌套虚拟化结构包括:两层嵌套虚拟化部分和多层嵌套虚拟化部分。

所述多层嵌套虚拟化结构中具有多个嵌套的hypervisor层;高层嵌套虚拟机相对于第二层嵌套虚拟机额外需要的计算资源定义为epsi,j(i≥3);其中i表示嵌套层所在结构的层数,j表示同一嵌套层的虚拟机编号;同时也将第i层hypervisor的性能开销映射进epsi,j(i≥3)中;其中idlei,j表示第i层编号为j的虚拟机的空闲资源片。

(1)本发明基于多层嵌套虚拟化的云资源优化方法包含一个新的多层嵌套虚拟化结构和一个新的嵌套云环境下的任务分配算法。在云环境下的任务处理执行流程图如图2所示。通过所设计嵌套虚拟化结构和任务分配算法的相互协作,能达到云资源利用效率的最大化。

本发明的云资源优化方案的核心为两张调度表的生成:

(1)嵌套虚拟机创建调度表

虚拟机创建调度表的生成有以下两个步骤:

首先,对所租云服务器的计算资源进行统计并分析待处理任务的特性,如处理该任务所需要的计算资源量等。并根据所收集的信息,计算出云服务器预计空闲资源量。

在得到云服务器预计资源空闲量后,根据所依赖的嵌套虚拟化结构,生成嵌套虚拟机创建调度表。

(2)任务分配调度表

任务分配调度表的生成有以下两个步骤:

虚拟机可以是已经创建并用于处理任务的虚拟机、还未被租用的云服务器或者还未被创建的嵌套虚拟机。如果选择了未被创建的嵌套虚拟机,此时需决定该虚机所处的嵌套层。由上文生成的嵌套虚拟机创建调度表处理。

在为每一个任务分配任务处理虚拟机后,根据所依赖的任务分配算法,生成任务分配调度表。

(二)嵌套虚拟化结构设计

在使用到的符号作如下定义:

vmi,j:表示第i层的编号为j的虚拟机,云服务器作为第一层虚拟机定义为vmi,j。

idlei,j:表示第i层编号为j的虚拟机的空闲资源片。其中idle1,1表示云服务器vm1,1的空闲计算资源。

epsi,j(i≥3):表示第i层编号为j的虚拟机在执行某个任务时,为达到与该任务在第二层客户虚拟机处理时相同的处理效率,所需要的额外的计算资源。

min_resourcei:表示第i层客户虚拟机为处理某个任务所需要最少的计算资源,并且min_resourcei至少为运行虚拟机操作系统所需的资源。如果表示第i层客户虚拟机是以min_resourcei为配置创建,则称它为一个标准li层嵌套虚拟机,并且它的空闲资源称之为idle_standard。由虚拟化基础知识可知,每一层的min_resource是不同的,并且随着层数增大。同样的每一层的idle_standard也不同。

rn:表示嵌套n层时,多层嵌套虚拟化部分占用idle1,1用于承载所有嵌套虚拟机的计算资源部分。

假设,一层的客户虚拟机在执行同类型的任务时,它们的性能配置都为min_resourcei。由于处理相同的任务,所以它们的空闲资源应该相等,即满足以下条件:

idle2,j=idle2,k,(j,k>0)(1-2)

为了达到资源的节省,在多层嵌套虚拟化部分中,最高嵌套虚拟机所在的层次数,应为满足公式(1-3)的n的最大值:

epsn<idle2,1,(n>2)(1-3)

因为每一层的eps是固定的,为了尽可能减小idlen,1,需要vmn,1是一个标准ln层嵌套虚拟机,即它的配置应为min_resource。于是,vmn-1,1的配置就被确定,即为min_resource与其处理任务所需资源之和。如此递归下去,多层嵌套部分的vm2,1的配置rn就被确定。最后将idle1,1余下的部分全部用来创建两层嵌套部分的标准l2层嵌套虚拟机。由于剩余的资源数目并非总是min_resource2的倍数,因此本发明将最终剩余的空闲资源定义为:idle'1,1。于是,得到该多层嵌套虚拟化结构的资源损耗总和,并定义为wstn:

其中n表示嵌套的最高层数,k表示两层嵌套结构部分的标准l2层虚拟机的数目。

同时,为了最大限度地提高底层计算资源的利用效率最大化,可通过式(1-5)得到最优化嵌套结构的嵌套层数j:

根据对升级的多层嵌套虚拟化结构的描述,具体算法如下:

根据算法1,可以得到一张多层嵌套虚拟化结构下虚拟机的创建调度表。当需要创建嵌套虚拟机时,通过这张调度表,云用户可以根据任务处理所需要的计算资源,在合适的层数创建符合需求的嵌套虚拟机。当这张虚拟机创建调度表中所有的嵌套虚拟机都被创建完成时,云计算资源资源利用效率将达到最大值。

(三)任务分配算法

在介绍任务分配算法前,首先对算法中需要用到的符号进行定义:

集合v={v1,v2...,vk}:是一个待处理任务组成的集合,其中任务的数目为k个。

w=(vi):表示处理任务vi预计所需要的处理时间。

w=(vi,p):表示虚拟机p处理任务vi预计所需要的处理时间。

ts=(vi,p):表示虚拟机p处理任务vi开始的时间。

tf=(vi,p):表示虚拟机p处理任务vi结束的时间。它满足以下公式:

tf(vi,p)=ts,(vi,p)+w(vi,p);

prec(i,p):表示虚拟机p在处理任务vi前,所需处理的任务的集合。如果在处理任务vi前虚拟机p没有需要处理的任务,prec(i,p)。并且虚拟机p在处理完prec(i,p)中的任务之前,不会开始处理任务vi。

avail=(vi,p):虚拟机p处理完prec(i,p)中的任务之后,并且准备好执行任务vi的时间:

所有任务都是独立的并且只能被操作系统串行操作的任务;所以avail=(vi,p)即为执行完prec(i,p)中最后一个任务的时间:

eft=(vi,p):表示虚拟机p处理任务vi最早的结束时间。即为:

eft(vi,p)=ts(vi,p)+w(vi,p);

frt(i):表示在执行任务vi前,该云服务器预期租约到期的时间。当执行完任务vi后,得到frt(i)'。在方案中,只有两种情况会导致frt(i)’>frt(i):

如果在该云服务器中,用于执行任务vi的虚拟机还未被创建,在其创建后,现有运行于该云服务器内的虚拟机的性能下降,于是导致frt(i)'>frt(i)。

如果eft=(vi,p)>frt(i),frt(i)'←eft=(vi,p)。

time:表示执行任务vi所增加的服务器的租期,即为:

time=(frt(i)'-frt(i));

cost(vi,pj)示执行任务vi所需要支付的花销,定义为:

cost(vi,pj)=time*mtu;

其中mtu为租用某一配置下的云服务器所需要的花销。

h={host1,host2...,hostk}:表示已租用云服务器组成的集合。当某一云服务器租期结束/开始,系统会自动将其剔除/加入该集合。

在综合考虑任务处理效率与服务花销的基础上,适用于嵌套云环境下的任务分配算法如下:

通过公式(1-6),在任务vi进行分配的过程中,在当时的任务调度图下,其max[cost]和max[eft(vi,p)]是固定的,所以只需要找到公式的最小值,其对应的虚拟机p就是最适合执行任务vi的虚拟机,被选择的虚拟机p即能在保证任务处理速度的基础上同时兼顾任务处理的开销。根据对任务分配算法的描述,整理任务分配算法如下:

下面结合对对比对本发明的应用效果作详细的描述。

比较模型中,l1层的虚拟机为云服务器。由图3可知,传统的两层嵌套虚拟化结构的缺陷在于:在资源隔离的作用下,每个嵌套虚拟机的空闲资源片并不能为其他虚拟机所用,且在租约到期前将一直处于闲置状态。相较于两层嵌套虚拟化结构,多层嵌套虚拟化结构虽然能尽可能减少资源碎片的产生,但是在资源扩张的作用下,会导致eps的产生,并且idle2,1<idlen,1。若idlen,1以及各层的epsi,j(i≥3)之和大于两层嵌套虚拟化结构中相同数量的虚拟机的idle2,j之和,此时两层嵌套虚拟化的资源利用率情况显然比该多层嵌套虚拟化结构更好,此时多层嵌套虚拟化结构在计算资源节省问题上将毫无优势可言。因此,需要设计一个性能更好,效率更优的嵌套虚拟化结构来提高云平台的资源利用率。

现有的云平台任务分配算法有贪婪算法、hadoop任务分配算法、启发式任务分配算法等。贪婪算法:如min-min算法、max-min算法、sufferage算法等。其中min-min算法遵循的是任务的最早分配和最快处理,并且对任务的优先级采用先易后难原则,带来的好处是能最大限度的减少任务等待时间。max-min算法虽然也遵循任务的最早分配和最快处理,但是不同于min-min算法,其任务优先级排序采用先难后易的原则。而sufferage算法采用的则是最小损失法,在任务存在优先级竞争时,“弱势”任务先分配计算资源。总的来说,贪婪算法考虑的是任务处理的速度。但是一味的追求计算效率,将导致计算节点的负载不均衡(处理压力将集中于计算性能强的节点)。

hadoop任务分配算法:根据不同用户的任务处理需求,hadoop有不同的任务分配算法。比较经典的有先进先出算法、公平调度算法等。先进先出算法,从字面意思可知,即先到的任务先处理。而公平调度法则秉持的是资源的公平分配原则。此类算法会导致大量的资源碎片的产生,并且计算节点将频繁的在不同任务间切换。

启发式任务分配算法。通过对任务进行优先级排序,并根据分配经验、调度策略等因素,此类方法可以快速的将各任务映射到相应的计算节点,并生成一张任务分配表。比较著名的启发式算法有遗传算法和蚁群算法等。

根据不同的服务qos需求,任务分配算法的执行策略各异。在考虑到云服务器负载均衡和服务高可用性的基础上,hung提出了一个任务分配算法来提高云环境中任务分配的效率。该算法同时考虑了任务处理的效率与花销问题,并且达到了该两种因素的折中。通过找到式(1-1)的最小值,其对应的任务分配调度表即为最优的任务分配调度表。其中,v代表待处理任务组成的任务集合,vi代表任务集合中优先级为i的任务。h代表所租用的云服务器组成的集合,pk代表云服务器集合中编号为k的云服务器。eft(vi,pk)代表任务vi在云服务器pk中预计的执行结束时间,对应的cost(vi,pk)即为云服务器pk执行完任务vi预计的花销:

虽然hung的算法达到了任务处理效率与花销的折中,但是它无法解决图3中的任务分配情况。在云服务计费模式的作用下,运行于云服务器内的嵌套虚拟机并不需要额外付费。如图3中云服务器1中,os1和os3并不需要付费,因为云服务器1的收费由其占用云服务的时间决定,即为os2的任务处理结束时间。因此,hostvm1的os1和hostvm2的os1都能保证处理任务7的服务花销为0,所以在该算法策略的计算公式下,得出的结论为:在处理任务7时,hostvm1的os1和hostvm2的os1性能一致,于是该算法会将任务7随机分配至上述两个虚拟机中的一个。然而,实际任务处理时,hostvm2中的os1显然性能更好。原因在于将任务7分配给云服务器hostvm2中的os1时,任务执行结束预计会在7:04,而将任务分配给云服务器hostvm1中的os1时,此时任务执行结束会在7:06。显然,该任务分配算法并没有很好解决该问题。

本发明通过所设计多层嵌套虚拟化结构和适用于嵌套云环境下的任务分配算法的相互协作,能在软件、硬件层面同时对云资源的利用进行优化。相对于现有技术,优势主要有以下两方面:

(1)嵌套虚拟化结构优势

当创建的嵌套虚拟机数量为n时,传统的两层嵌套虚拟化结构的资源损耗为传统的多层嵌套虚拟化结构的资源损耗为本发明多层嵌套虚拟化结构的资源损耗为式(1-4)的wstx(2≤x≤y)。其中x为嵌套的层数,y为允许嵌套的最高层数,由式(1-3)确定。由于嵌套虚拟化结构会对每一张嵌套虚拟机创建调度表计算式(1-4)的wstx(2≤x≤y),其中包含x=2的情形(此时即为传统的两层嵌套虚拟化结构),因此嵌套虚拟化结构包含传统两层嵌套虚拟化结构的性能。并且在式(1-5)的作用下,是取得资源损耗为最小值的嵌套虚拟机创建调度表,因此嵌套虚拟化结构在提高计算资源利用率性能方面优于传统的两层嵌套虚拟化结构。而传统的多层嵌套虚拟化结构根据其嵌套虚拟机创建规则,其嵌套的层数即为嵌套虚拟机的数量n。当(n+1)≤y时,传统的多层嵌套虚拟化结构生成的嵌套虚拟机创建调度表同样在多层嵌套虚拟化结构虚拟机创建调度表遍历范围内,故此时嵌套虚拟化结构包含传统的多层嵌套虚拟化结构的性能。当(n+1)>y时,由于不满足式(1-3),且idlen,1>idley,1,因此传统的多层嵌套虚拟化结构资源损耗可以分为两部分:2~y层嵌套虚拟机部分和y+1~n+1嵌套虚拟机部分。嵌套虚拟化结构嵌套最高层数取y,则多层嵌套虚拟化部分损耗比传统的多层嵌套虚拟化结构的2~y层嵌套虚拟机部分多出idley,1。而在式(1-3)的条件约束下,传统的多层嵌套虚拟化结构的y+1~n+1嵌套虚拟机部分却比本发明的嵌套虚拟化结构的两层嵌套虚拟化部分多出

由于idlen+1>idley,1,并且所以本发明嵌套虚拟化结构在(n+1)>y时,在提高计算资源利用率性能方面优于传统的多层嵌套虚拟化结构。综上,本发明多层嵌套虚拟化结构在提高计算资源利用率方面优于传统的两层嵌套虚拟化部分和多层嵌套虚拟化部分。

(2)任务分配算法优势

本发明为云环境嵌套虚拟化结构,除了能像hung的任务分配算法达到任务处理效率与花销的折中,还在以下几方面优于hung的任务分配算法:

●计算复杂度

对本发明任务分配算法的描述可知,式(1-6)中eft(vi,p)≤max[eft(vi,p)],cost(vi,p)≤max[cost]并且任务处理的花销cost为分钟级花销。若待分配任务的处理时间为x分钟,已租用的云服务器数量为y,(cost(vi,p)/max[cost])=1/x,此时本发明任务分配算法为该任务分配处理虚拟机的计算复杂度为o(y*ex)。由于任务的处理时间和租用的云服务器的数量都为常数,故本发明提出的任务分配算法为单个任务分配处理虚拟机的计算复杂度可简化为o(1)。若所需处理的任务数为n,则的任务分配算法生成该批任务分配调度表的计算复杂度为o(n)。而hung提出的任务分配算法中,由于是取能使式(1-6)取得最小值的任务调度表,所以需要对所有可能的任务调度表进行遍历。若已租用的云服务器数量为y,所需处理的任务数为n,则一共可生成y*n张任务调度表。可知,hung提出的任务分配算法对一张任务调度表计算式(1-1)的计算复杂度为o(n)。此时,对所有任务调度表计算式(1-1)并取得最小值的计算复杂度为o(n*yn)。由于所租用的云服务器数量为常数,故hung提出的任务分配算法生成任务分配调度表的计算复杂度为o(2n)。综上,本发明任务分配算法在计算复杂度方面优于hung提出的任务分配算法。

●算法性能

hung提出的任务分配算法无法解决图3的任务分配问题。而本发明提出的任务分配算法则适用于解决该任务分配问题。由图3可知,hostvm1的os1和hostvm2的os1都能保证处理任务7的服务花销cost为0,此时(cost(vi,p)/max[cost])=0。但是由于本发明任务分配算法引入了e,即式(1-6)实际计算比较的是eft(vi,p)/max[eft(vi,pj)]部分。由于hostvm1的os1和hostvm2的os1处理任务7的结束时间eft不同,故式(1-6)的计算所得结果不同,因此本发明任务分配算法能解决图3的任务分配问题,即将任务7分配给hostvm2的os1处理。

●算法定制功能

任务分配算法不仅在任务处理效率与花销这两个因素达到折中,相较于文献hung提出的任务分配算法还人性化地赋予了云用户能根据自身需求修改分配方案的权利,即为云用户提供了算法定制功能。通过修改式(1-6)中的e的值,算法能改变任务分配策略对效率和服务花销的侧重比。例如,当云用户只考虑任务处理的效率,而不在乎处理任务所需支付的花销时,只需要将e设置为1,此时该定制任务分配算法即为传统启发式任务分配算法。相反的,若是云用户想尽可能降低花销,其只需相应的增大e的值。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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