本发明属于云计算技术领域,具体地说,涉及一种csp下的资源调度与优化方法。
背景技术:
云计算由于具有按需自助服务、无处不在的网络接入、与位置无关的资源池以及风险转移等优势,被视为下一代计算技术模式。云计算将数据计算和资源存储从网络转移到“云”,用户可以从云中随时随地访问到所需资源。同时,为云端用户提供服务的大型数据中心和服务器集群-云服务提供商(csp)也应运而生,它将提供云服务运营成本最小化以及运营效率最大化,且吸引越来越多用户接入云服务中心。
虚拟化技术是云计算发展的重要推动力之一,它将服务器、数据中心cpu和内存资源等重构到云计算部署和管理的基本单元虚拟化平台(vm)上,用户通过csp调用vm来构建服务和应用平台,csp决定如何分配物理资源给每个用户协同使用;众所周知,csp的大部分的运营成本源于动态和静态能耗,大型云服务器在空闲时候的能耗高达峰值功率的50%。为此,选择性的关闭空闲云服务器或者在所有活动服务器上平衡资源利用率可以使能耗最小化。为了安抚用户对潜在不良后果的担忧,使用服务水平协议(sla)来规范化双方约定的服务质量,包括截止期、隐私和安全规范等。csp必须无条件满足用户个人请求的同时要管理大规模异构弹性云资源以最大限度地提高能效。要想实现这一目标,必须遵循以下三个原则,即3a准则:
1)云平台准确建模云平台建模只考虑物理因素,它对模型优化至关重要,不仅能降低计算复杂度,而且还能保持足够的模型精度。
2)恰当的用户工作负载建模目前,云计算中有两种工作负载模型框架,“批处理模式调度”和“依赖模式调度”。它们之间关键区别在于所处理任务的依赖性不同。在粗粒度环境下,每个用户工作负载作为一个原子任务与其他任务相互独立,根据泊松到达率和响应时间能够判断任务集合是否构成一个批处理任务,批处理任务大大降低了csp任务调度的复杂度。在细粒度环境下,每个用户的工作负载为一个更加精确的任务图,图中任务相互依赖,相互支撑,共同完成csp任务调度。
3)可接受的复杂度对于依赖模式调度,csp确保优化过程本身不会产生过长的运行时间和较高的能源开销。
技术实现要素:
本发明的目的在于提出了一种csp下的资源调度与优化方法。该方法为csp提供了通用的调度和优化框架,旨在最大限度地提高能效的同时满足所有用户的截止期,该框架足以承载大型云计算平台下处理多用户大规模工作负载。
其技术方案如下:
一种csp(cloudserviceprovider云服务提供商)下的资源调度与优化方法开启一个不限截止期且节能的调度框架,对违反截止期的应用程序和总体能耗成本优化。首先,每个应用程序的子调度是并行生成的,并组装到预调度集中。在预调度集中将每个预调度作为根处理,并行执行gmap,最终产生多个调度结果,选择最好的调度结果作为解决方案。gmap(guidedmigrateandpack引导迁移和整合)主要解决能量问题但需符合截止期。如果所有的截止期都符合,则gmap只关注能耗,除非出现新的截止期。在gmap框架下,调度策略会变得过于耗电或耗时,但gmap的资源请求和运行时间可以基于目标云环境的功率组合进行两个方面调整:
1)根的数量可以根据任意自然数进行调整;
2)每个搜索树的大小可以单独调整。
阶段1:生成子调度
用户a的子调度是基于ua的ga调度,假设针对每个请求的vm(virtualmachine虚拟机)类型实例化一个vm。同时所有的虚拟机都映射到单个虚拟服务器。不管哪种调度算法,子调度算法都可以在所有的应用程序中并行生成,采用了改进的贪婪算法。
阶段2:应用特征
此阶段中,每个应用程序有不同的特征参数。第一个特征参数是ga的子调度长度,记为
最后,假设vm资源无穷大,用遗传算法的时序长度减去para,根据这些参数按升序产生三个排序的应用程序列表:lseed[↑],par[↑]和slack[↑]。
阶段3:初步调度生成
通过将子调度覆盖至服务器上生成预调度集。
阶段4:优化
gmap的核心是定向搜索的程序优化。此阶段会将任务从一个虚拟机迁移到另一个虚拟机,以满足截止期和能效最大化。gmap利用进化算法实现全局最优。每次迭代优化都经过两步,迁移和整合。
migrate()(迁移函数)的功能是将当前位于源服务器dx上的类型g虚拟机迁移到另一个目的服务器dy上的同一类型虚拟机。源服务器和目标服务器可以不同,但在大多数情况下,为避免高通信延迟,它们应位于同一个服务器群中。
进一步,每次迁移尝试都会做出三个重要决策,共同决定解决方案质量,即:
1)应该选择哪个用户迁移;
2)应该选择哪个任务迁移;
3)该任务应该迁移到哪个服务器。
本发明的有益效果为:
本发明的gmap在搜索空间大小和算法运行时间的控制很灵活。实验结果表明,当为csp部署gmap时,全局能耗在为30-50个用户提供服务时提高了23%以上,在为60-100个用户提供服务时提高16%以上。
附图说明
图1是环境视野图;
图2是应用程序模型;
图3是服务器群分布图;
图4是动态能耗随cpu(中央处理器)利用率变化曲线图;
图5是虚拟机调度图;
图6是cosp(能耗的总量)值变化图;
图7是实验6每个用户分配的虚拟机图。
具体实施方式
下面结合附图和具体实施方式对本发明的技术方案作进一步详细地说明。
本发明采用工作负载的依赖模式调度,并提出一种新的云资源配置方式-任务调度模型和能耗优化框架,此框架具有以下的特点:
(1)把工作负载建模为具有输出依赖关系的多任务图集合。基于此工作负载模型的云系统优化框架包括:nephele,pegasus,vgrads。
(2)把云平台建模为代表具有不同的资源容量、能效和通信极限的异构服务器的加权图。
(3)用户在按需付费的计费协议中请求虚拟机(如亚马逊ec2),但是不用考虑资源配置和任务调度问题。
(4)csp以整体方式处理截止期限、资源配置、布置虚拟机、任务调度和能耗成本优化等问题。
(5)在优化的云资源条件下,调度算法完全实现并行化处理。
图1任务调度是由csp执行,csp通过准入控制策略选择性地接受工作负载请求,然后为每个工作负载请求分配适当数量的虚拟机,将此虚拟机分配给相应的物理服务器,如有必要,则对虚拟机进行合并。在满足sla截止期限的前提下,对所有请求进行处理,同时最大限度地降低能耗成本。上述工作负载模型不仅具有任务图并行化优势,而且还有全局优化特点;目前只适用于批处理工作负载框架,该算法是离线的,但通过新用户进入时的递归触发,很容易地将其转化为自适应在线算法。
一.相关工作
对csp而言,云服务优化的第一步是资源配置,实质上这是以物理服务器和虚拟机的方式分配计算资源的过程。最简单的方式是,把云平台设想为互不相交的同构的服务器,而工作负载是给定到达率的独立请求模式。在这种情况下,资源配置通过以下的方法进行解决:修改装箱算法或者受排队理论启发的自适应工作负载预测算法。更精确的硬件建模方法和通信能力有关。在现有技术中,作者提出了一种基于多种服务云环境的图形模型,并通过milp(mixedintegerlinearprogramming混合型整数线性规划)的方式解决服务器配置和消息路由问题,还引入了其他变体,比如捆绑虚拟机请求,虚拟机性能可变性,多服务器的睡眠状态或价格拍卖。
资源配置之后是应用程序或虚拟机到物理服务器的映射。此过程的目标是为每个服务器维持接近最佳利用率水平以实现高能效。这个问题类似于互联网服务中的经典负载平衡问题,它可以在独立工作负载的资源分配期间同时解决。比如,现有技术中的装箱算法不仅能够最大限度地减少部署的服务器数量,还可以防止服务器空载或者负载过重,现有技术中将虚拟机配置及布置问题制定为一个满意度函数。使用其他经典的解决方案,比如mcmf(最小成本最大流量),当工作负载提前不可预知,则此时动态的工作负载迁移和虚拟机再分配就变得非常重要。电价在时间和空间上的变化使得负载保持平衡。相关方法包括milp,原始双重,讨价还价游戏和概率预测。
在云计算系统中,基于依赖关系的工作负载的调度任务图不同于批处理任务调度。从较高层面来讲,此问题类似于并行/集群计算社区的芯片多处理(cmpchipmultiprocessor芯片多处理)调度。但是,它所开发的技术并没有直接应用于云用户,主要是由于公有云的不透明造成的;由于多个竞争用户并存,更重要的是云计算底层硬件的弹性特征不适合csp,改进的调度框架从个人用户的角度进行优化,比如nephele和pegasus充分考虑了云计算中计算资源的动态特性。由于缺乏对其他竞争用户和整个云资源图的了解,他们无法捕获到全局csp管理机制,如准入控制、虚拟机布置和合并,结果只是根据单个用户的资源利用率和截止期限来评定,而不是整体的能耗。
二.用户工作负载模型
本发明使用有向无环图(dagdirectedacyclicgraphs有向无环图)对用户工作负载建模,整个工作负载表示为n个不相交的dag集合:{g1(v1,e1),g2(v2,e2),...,gn(vn,en)},每一个有向无环图ga(1≤a≤n)表示一个工作负载请求,ga中每个顶点via(1≤i≤|va|)表示一个任务。一般地,假定每个工作负载请求是一个属于单独用户的应用程序。因此,每个应用程序相当于一个用户工作负载请求。ga中从
任务特征
任务都由虚拟机处理,虚拟机分为k种类型:{vm1,vm2......,vmk},每种虚拟机vmg(1≤g≤k)与一个两元整数集耦合,该整数集表示此虚拟机所需的cpu和内存资源的数量,即为
每个任务
资源请求
除了工作负载请求外,用户还必须得到csp的计算资源。当然,csp根据预定的收费合同,针对用户的资源请求进行收费。在当前云系统中,资源请求和虚拟机类型相捆绑。每个用户只能指定所需的虚拟机的类型,但是不能指定所需类型的虚拟机的数量,所以用户不必关心资源分配的细节问题。
虚拟机请求表示为:每个应用ga与二进制阵列有关系,该二进制阵列ua有k个元素组成(k为虚拟机数量):
截止期
虽然用户不能请求更多同类型的虚拟机,也不能安排自己的工作负载,但可以通过指定sla中的截止期控制工作负载性能。用户a(ga)的工作负载截止期被记做
三.云平台模型
云由m个服务器:{d1,d2,……,dm}组成,并被建模为m个顶点的无向图,每个顶点代表一个服务器,每个边的权重bx,y代表(dx,dy)之间的通信容量,多个相邻的服务器构成本地连接的服务器群,该服务器群通过高速通道相互通信,服务器和通道带宽之间的距离用值bx,y表示。bx,x在默认情况下为∞,即在同一服务器上执行的任务不会产生任何通信开销。此外,假设任何两个服务器之间都存在一个高速通道,无论是通过直连或多跳,多跳路径将被抽象为低值bx,y的连接边。如图3中,云平台由9个服务器组成,并构成两个服务器群,其中一个服务器群有6个服务器,另一个服务器群有3个服务器,本地连接也可能是异构的,为清楚起见,并未显示所有服务器连接。
虚拟机配置和资源利用率
在操作过程中,每个服务器dx与具有k个元素的整数数组
当utilx(t)>0时,
图4绘出了在不同cpu利用率下,当
假设所有应用的最大调度长度上界是lmax,则能耗的总量(cosp)是整个运行时间在所有服务器的功耗的总和:
准入控制策略
接入控制的目的是判断并解决过度消耗资源的用户工作负载问题。在云中,有些用户请求大量vms预留导致资源被占用,给其他用户的需求和资源调度带来困难。在本发明中,基于用户的截止期,我们采用一种二级准入控制策略来筛选过滤用户。
在二级准入控制策略下,将会检查每一个应用判断其是否能够在给定的截止期之前完成。与核心调度程序不同,此“可调度性”可以在线性时间内进行,如果超过了截止期,则该工作负载请求将不被执行。在调度过程中,用户在csp的监管下竞争vm资源,由于资源受限而可能无法满足某些用户请求。如果经过大量优化工作后,仍然不符合截止期,则此工作负载请求将被丢弃。
四.云操作
csp负责配置vm和分配任务,每台虚拟机只能被一个用户占用,直到csp停止该虚拟机服务。假设有一个就绪任务tia,
1)目标vm是可用的,并且只服务于用户a;
2)已完成输出所有必要数据。
假设任务tia的前一个任务为
调度质量是由两个因素决定:i)总体能耗;ii)因违反截止期而丢弃的请求数量。有时调度质量很高,但由于违反截止期最终不可行,这时应调整调度策略以满足截止期要求,并尽量减少被丢弃的请求数量。比如,设csp服务于两个用户,工作负载信息见下表i。
表1任务图和任务延迟
如果把工作负载看作独立原子,那么图中显示调度方法是将两个应用程序放到最节能的服务器5(d5)上,当为其分配两个1类型虚拟机的时候,利用率util5(t)小于opt5。结果如图5(a)所示,表长度是19个单位。如果
为满足两个用户的截止期,csp利用g1和g2内的数据并行性。贪婪方法会产生时间表图5(b)所示生成的调度方案,在该图中所有虚拟机都集中在d5上,所以两个用户完成时间有所减少,但d5负担过重。同时,utilx(t)大于optx,此调度能耗为:
详细来看,在t=9时,停止为用户1保留的类型1虚拟机,为用户2保留类型1虚拟机的配置。图
另一个解决方案是使用其他服务器,比如服务器6(d6)。csp给服务器d6增加一个用户,使得d5和d6都不会出现负载。图5是用户2转移到d6服务器。d6和d5不一定在同一个服务器群。此调度能耗为:
假设
本案例研究的主要内容是:
1)通过额外的虚拟机分配和并行执行来加速应用程序通常会增加csp能量开销。
2)执行vm分配和任务迁移时存在多种调度方案,其中没有违反截止期和低能耗成本的调度方案优先被考虑。最佳分配和迁移方案取决于云平台的特性和工作负载情况。
五.gmap框架
本节中,将介绍csp的“引导迁移和整合”(gmap)调度优化框架。gmap基于定向搜索且完全并行化,csp利用可支配的云资源运行gmap。
gmap算法的基本思想是开启一个不限截止期且节能的调度框架,对违反截止期的应用程序和总体能耗成本优化。首先,每个应用程序的子调度是并行生成的,并组装到预调度集中。在预调度集中将每个预调度作为根处理,并行执行gmap,最终产生多个调度结果,选择最好的调度结果作为解决方案。gmap主要解决能量问题但需符合截止期。如果所有的截止期都符合,则gmap只关注能耗,除非出现新的截止期。在gmap框架下,调度策略会变得过于耗电或耗时,但gmap的资源请求和运行时间可以基于目标云环境的功率组合进行两个方面调整:
1)根的数量可以根据任意自然数进行调整;
2)每个搜索树的大小可以单独调整。
阶段1:生成子调度
用户a的子调度是基于ua的ga调度,假设针对每个请求的vm类型实例化一个vm。同时所有的虚拟机都映射到单个虚拟服务器。不管哪种调度算法,子调度算法都可以在所有的应用程序中并行生成。
阶段2:应用特征
此阶段中,每个应用程序有不同的特征参数。第一个特征参数是ga的子调度长度,记为
最后,假设vm资源无穷大,用遗传算法的时序长度减去para,根据这些参数按升序产生三个排序的应用程序列表:lseed[↑],par[↑]和slack[↑]。
阶段3:初步调度生成
通过将子调度覆盖至服务器上生成预调度集。如图5a所示,伪代码如下:
阶段4:优化
gmap的核心是定向搜索的程序优化。此阶段会将任务从一个虚拟机迁移到另一个虚拟机,以满足截止期和能效最大化。gmap利用进化算法实现全局最优。每次迭代优化都经过两步,迁移和整合。伪代码如下:
migrate()的功能是将当前位于源服务器dx上的类型g虚拟机迁移到另一个目的服务器dy上的同一类型虚拟机。源服务器和目标服务器可以不同,但在大多数情况下,为避免高通信延迟,它们应位于同一个服务器群中。
每次迁移尝试都会做出三个重要决策,共同决定解决方案质量,即:
1)应该选择哪个用户迁移?
2)应该选择哪个任务迁移?
3)该任务应该迁移到哪个服务器?
csp选择使应用程序发生延迟的任务,将其迁移到不会产生高能效开销的服务器上,同时要考虑是否对其他应用程序产生影响。决策过程通常会交叉检查lseed[↑],par[↑]和slack[↑]以选择具有负slack值、高lseed和par值的应用进行迁移,因为此应用程序违反截止期要求产生了一个负s(slack)值,但由于par值较高,因此通过并行执行减少长度,目标服务器将根据利用率级别和任务依赖性进行选择。但是,由于当前优先级满足截止期限,因此将选择前任后继任务所驻留的服务器,并且最小化跨服务器的通信。当大多数应用程序满足截止期时,gmap将更灵活地操纵具有高s值的应用程序以最小化能耗。比如,将任务迁移到不太拥挤的服务器,迁移后,需要调整源服务器中的计划以及目标服务器中的计划,其中当前任务是迁移任务的直接或间接后继任务。由于迁移要进行虚拟机整合和重组,因此会导致过度配置vm。
六.实验结果
本节中,通过大规模云平台上海量工作负载实验证明gmap的有效性。每次实验输入的数据不同,云平台规模也不相同。表二提供了一些关键参数的上限和下限。
表2模型参数表
首先比较最终调度结果与“模糊预调度的最佳截止期(bdops)”,即最好的调度方式就是把工作负载请求作为一个原子实体并忽略所有截止期。bdops实现了最佳能效,但包含大量截止期违规情况。本发明制定sla使得bdops中30%-80%的用户违反截止期,bdops是能耗开销计算的参考。
其次,比较解决方案与基线,该基线从gmap减去能效得到的优化,即基准调度就是模糊能耗。结果如表3所示。
表3大规模和超大规模用户工作负载输入结果表
当大规模输入30-50个用户时,相比bdops,能耗平均提高-14.12%,换句话说,能耗开销平均为14.12%。此开销不可避免,因为它由额外的虚拟机分配,用于加速截止期违规的应用程序。csp依据用户需求分配适量vm给每一个用户,图7说明了实验6的虚拟机分配。与基线相比,能源成本的改善平均为23.61%,这是非常有前途的结果。
当超大规模输入60-100个用户时,如果实现相同级别的解决质量,应扩大搜索算法空间以匹配输入用户数量的增加。然而为保持一致性,本发明修改了搜索空间的大小如表2所示。因此,能源成本费用平均增加了49.72%,相对于基线的平均能耗改善降低至9.35%。根据这些数据推断,每个搜索树的50个根和5000个节点的搜索空间足以容纳30-50个用户工作负载,但对于60-100个用户工作负载来说是不够的。
通过观察实验6中所有10台服务器的util(t)。根据能效等级对服务器进行排序,证实服务器0是最节能的,从中能看到bdops和调度方案之间的根本区别。对于bdops,所有应用程序都放置在最节能的服务器0-4中,而未使用服务器5-9。虽然它的能效比最佳,但在接受的29项工作负载中,12项违反了截止期。
对于调度方案,由于gmap分配了其他虚拟机使得服务器0-4利用率增加,使能效较低的服务器5-9联机托管新的虚拟机,util(t)值在t=0时比较高,但这些高值保持很短时间就下降了。
搜索空间分析
与其他进化算法相似,gmap长时间运行可以扩展算法搜索空间并产生更好的解决方案,但需要通过增加计算时间来支撑更大的搜索空间,这将导致增加能耗和运行gmap的时间,从部署gmap到gmap本身的成本以及评估扩展算法搜索空间在解决方案质量方面的改进提供了一些关于如何平衡收益的方案。首先,表3具有扩展的搜索空间,重新运行实验15-18,即pss中的50个根和每个搜索树的104个节点,结果如表4所示。
表4扩展搜索空间结果表
当搜索空间翻倍时,gmap比表3结果更佳,几乎将平均能耗优化量从表3中的9.35%提高一倍至表4中的16.85%。下面在固定云平台上检查20个已接受用户的详细案例研究,在pss中有50个根,将搜索树大小从100个节点指数增加到105个节点。结果显示如表5所示。
表5算法对调度优化方案的影响
随着搜索树的增长,gmap解决方案可以实现最佳。更重要的是,gmap出现收益减少的现象,搜索树和pss的大小高度依赖于实际操作环境。目前gmap只能实现在搜索空间方面的灵活性。
sla中截止期的侵略性会影响解决方案的质量。本发明将进行一个固定云平台实验计划,该平台包含两个服务器群,共有15个服务器和一组固定的40个工作负载请求。每个应用程序申请的截止期是其种子计划长度的一部分:
表6截止期对调度优化方案的影响
当μ=1时,可以看到gmap使整个优化过程的能耗最小,比bdops改进20.32%。当μ降至小于1时,gmap受限于截止期这个硬性要求,因此调度方案不如bdops优越。随着μ值的减小,基线计划将执行许多对能耗不利的虚拟机分配和任务迁移,gmap成功恢复了近40%的能耗损失。
七.结论
本发明从云服务提供商(csp)的角度来考虑云计算的全局运行优化问题,目标是为csp提供了通用的调度和优化框架,旨在最大限度地提高能效的同时满足所有用户的截止期,该框架足以承载大型云计算平台下处理多用户大规模工作负载。
云计算系统采用了两种类型的工作负载模型:独立的批处理请求和具有依赖关系的任务图。本发明将来自多个用户的工作负载建模为不相交的任务图集合。对于云平台模型,它完全能够反映服务器资源容量和能效异构性,服务器通信瓶颈也被考虑在内。通过并行执行和全局能耗最小化对硬件资源和用户工作负载的细粒度处理为面向截止期的应用程序加速提供了机会但也需要在准入控制、资源配置、虚拟机布局和任务调度上更加努力。本发明中我们提出了gmap作为csp的统一的调度与优化框架,以全面方式解决这些问题。gmap在搜索空间大小和算法运行时间的控制也很灵活。实验结果表明,当为csp部署gmap时,全局能耗为30-50个用户提供服务时提高了23%以上,为60-100个用户提供服务时提高16%以上。
以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。