一种云计算平台中细粒度资源匹配方法与流程

文档序号:13912947阅读:265来源:国知局

本发明属于计算机领域,涉及云计算平台中的资源管理和作业调度方法,具体涉及一种云计算平台中细粒度资源匹配方法。



背景技术:

云计算是一种基于互联网的计算方式,通过这种方式,用户可以按需获取计算资源、计算能力。云计算平台的基础设施一般由许多计算机节点通过高性能网络互联而成,其将众多节点组织成高性能、高可用、可扩展的单一映像,提供给用户使用。

云计算平台的资源管理中通常基于一种资源(通常是内存)或者将两种固定量的计算资源捆绑定义为slot,并以slot作为资源分配的单位。由于云计算中负载对资源的需求具有多样性,基于固定单位的资源分配方式很容易产生资源碎片而造成资源浪费,或因为过度分配引发不良的资源共享。有些资源(如cpu)的不良共享会导致任务之间竞争资源,执行时间大幅增加。在数据中心中,超过53%的落后任务是由不良共享引发的高资源利用率造成的,并且4%-6%的非正常任务影响着37%-49%的作业,造成作业完成时间的大幅延长。而有些资源(比如内存)的过度分配会直接导致任务失败或者服务器崩溃。

现有的yarn、fuxi、borg等云计算资源管理平台和apollo、omega、tetris、drf、carbyne等云计算调度算法基于作业的资源申请分配固定量资源,以避免资源碎片、过度分配等问题。由于作业的资源申请量通常由人为指定,资源申请与实际使用之间存在很大差异。另外,任务的资源使用量波动很大,不会一直保持在峰值,作业使用任务最大资源使用量作为申请量时,资源申请量与实际使用量之间依然存在差异。因此资源管理平台或者调度器按照资源申请量进行分配时,资源碎片依然存在。基于资源申请的分配方式很难取得高资源利用率,该方式一定程度上限制了集群的资源利用率。

因此,如何在云计算资源管理和作业调度中避免资源碎片及过度分配,成为了云计算平台研究中的重要问题。



技术实现要素:

本发明的目的在于提供一种云计算平台中细粒度资源匹配方法,该方法在分配时间、资源量两方面提高匹配粒度的同时,具有较低的调度平均响应时间,能够有效提高平台中计算资源的利用效率,提升云计算平台的整体吞吐率。

本发明是通过以下技术方案来实现:

本发明公开了一种云计算平台中细粒度资源匹配方法,包括以下步骤:

步骤1:将云计算平台中服务器的角色分为计算服务器和管理服务器两种,计算服务器负责具体负载的执行,并定期向管理服务器汇报资源状态;管理服务器负责整个云计算平台的管理工作,包括向计算服务器分配计算任务;

步骤2:管理服务器接收各计算服务器定期汇报的信息,并依据相似任务和资源压缩率推测某个任务的各种资源需求和持续时间;

其中,相似任务指负载中与所述某个任务具有相同执行逻辑且输入数据量相同的任务;

步骤3:管理服务器分析推测得出的任务各进度的cpu、内存空间资源需求,将任务划分为多个执行阶段;

步骤4:管理服务器从待调度集合中挑选任务,分阶段匹配任务资源需求和服务器可用计算资源,并根据需要压缩匹配资源需求;

步骤5:若资源需求匹配成功,则管理服务器假设资源已经分配,检查该计算服务器上所有任务是否会受到影响而不能满足约束条件,若所有任务约束条件均满足,则分配计算资源。

优选地,步骤5后还包括以下操作:管理服务器检查该计算服务器上是否剩余足够资源进入下一轮匹配,如果剩余资源满足条件,则进入下一轮匹配,即重复操作步骤4和步骤5。

优选地,步骤1中,计算服务器负责具体负载的执行,并定期向管理服务器汇报资源状态,具体是指:计算服务器定期采集本服务器运行中任务资源使用情况,计算本服务器可用资源信息并汇报给管理服务器;

其中,计算服务器上某种资源的可用资源量r按式(1)计算:

式中,ri为第i次采样的资源量,ti为第i次采样的持续时间,t为采样的计算总时间,n为采样次数。

优选地,步骤2中,据相似任务和资源压缩率推测某个任务的各种资源需求和持续时间,资源需求类型包括cpu、内存空间、磁盘空间、磁盘带宽及网络带宽;

其中,将任务的磁盘和网络带宽资源需求量按照任务与数据的相对位置分为三类进行推测,第一类:任务与数据在同服务器;第二类:任务与数据在同机架;第三类:其他;

具体操作为:

任务在某进度所需的资源需求和持续时间按式(2)计算:

式中,αn为第n次推测结果,βn为第n次的相似任务资源信息,rc为任务信息的资源压缩率,thr为最大压缩率限制系数,e为自然底数。

优选地,步骤3具体操作为:

管理服务器遍历任务在各进度的cpu、内存空间资源需求量,并分别记录这两种资源量的最大值和最小值;

当cpu或者内存空间资源需求量的最大值和最小值之差大于划分阈值,并且遍历的进度达到划分长度,则将遍历的进度划分为任务的一个执行阶段;

任务执行阶段cpu、内存空间及磁盘空间的资源需求值为执行阶段内各进度该资源需求的最大值,磁盘带宽、网络带宽资源的需求值为执行阶段内各进度该资源需求的平均值。

进一步优选地,参见图1,任务执行阶段的划分方法,具体包括以下步骤:

1)p、ps、pe分别代表任务进度、阶段开始进度和阶段结束进度,cmax、cmin、mmax和mmin分别表示阶段内cpu、内存空间资源需求的最大值和最小值;其中,p、ps、pe初始化为0;cmin、mmin为100,cmax、mmax初始化为0;

2)任务进度p和阶段结束进度pe增加1,如果任务进度p达到100%,则将ps到100%划分为新的阶段之后结束,否则继续步骤3);

3)如果当前进度cpu需求cp大于cmax,则将cmax的值更新为cp,进入步骤5);

4)如果当前进度cpu需求cp小于cmin,则将cmin的值更新为cp;

5)如果当前进度内存需求mp大于mmax,则将mmax的值更新为mp,进入步骤7);

6)如果当前进度内存需求mp小于mmin,则将mmin的值更新为mp;

7)如果cmax与cmin的差值大于cpu资源总量c与阈值thc的乘积或者mmax与mmin的差值大于内存总量m与阈值thm的乘积,则进入步骤8,否则进入步骤2);

8)如果pe与ps的差值大于阈值thp,则将ps到pe划分为新阶段,将ps更新为pe,重新初始化cmin、mmin为100,cmax、mmax为0;否则,回到步骤2)。

优选地,步骤4具体操作为:

首先,管理服务器检查计算服务器上可用计算资源是否达到匹配要求;

其次,管理服务器按资源分配公平性和数据本地性策略排序待调度集合;

最后,资源管理服务器取出任务,从推测结果中获取任务的推测信息;

其中,若推测信息获取失败,则按照任务资源申请量匹配计算资源;若推测信息获取成功,则分阶段依次匹配任务的资源需求。

优选地,管理服务器根据资源特性将计算资源抽象为可压缩资源和不可压缩资源;其中,计算资源包括cpu资源、内存资源、磁盘资源及网络资源;

在任务执行过程中,若任务分配到的某种资源少于任务对该资源需求量,任务能够通过延长执行时间正常完成,则该资源为可压缩资源,否则为不可压缩资源;

计算服务器上的资源压缩率rc按式(3)计算:

rc为资源压缩率,rr为资源需求量,ru为资源分配量;

若资源为不可压缩资源,则其资源压缩率rc始终为0。

优选地,在匹配过程中,如果需求量大于可用资源量,则匹配失败;

对于不可压缩资源,计算服务器对该资源的可用资源量不做处理;

对于可压缩资源,管理服务器依据计算服务器资源及负载情况计算该服务器各阶段各种资源的最大压缩率,计算服务器在各阶段内某种可压缩资源的最大压缩率rmax按式(4)计算:

式中,服务器上已匹配n个任务,当前匹配任务为第n+1个,n+1个任务的资源总需求大于资源总量,第i个任务在阶段内完成的工作量为wi,δp为资源压缩引起的性能变化;

可压缩资源匹配中,计算服务器该资源的实际可用资源量按式(5)计算,

ai=ni+ri×ni(5);

式中,ri为该服务器上该种资源的当前匹配阶段的最大可压缩率,ni为该服务器上该种资源的总量,ni为采集得到的该种资源的可用资源量;

若任务的所有执行阶段所有资源的需求均未匹配失败,则匹配成功。

与现有技术相比,本发明具有以下有益的技术效果:

本发明公开的云计算平台中细粒度资源匹配方法,根据资源特性将计算资源抽象为可压缩和不可压缩两种类型;根据云计算负载中存在的相似任务和资源压缩率推测任务的资源需求及持续时间;根据任务资源需求将任务划分为多个执行阶段,并分阶段分资源类型分别匹配资源需求和可用资源;在匹配过程中,通过资源压缩的方式,以轻微延长任务完成时间为代价换取整体资源利用率和负载性能的提升。该方法在分配时间、资源量两方面提高匹配粒度的同时,具有较低的调度平均响应时间,因而可以应用在各云计算平台资源管理、作业调度等方面,避免资源碎片和过度分配等问题,提高平台中计算资源的利用效率,最终提升云计算平台的整体吞吐率。

附图说明

图1为任务执行阶段划分算法的流程框图。

图2为在yarn平台中实现细粒度资源匹配方法的架构图。

具体实施方式

下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。

本发明公开的云计算平台中细粒度资源匹配方法,依据相似任务推测任务资源需求及持续时间;根据资源特性将资源抽象为可压缩和不可压缩两种类型;将任务划分为多个执行阶段并依次匹配各执行阶段各种类型资源的需求。该方法能够在云计算平台资源管理和作业调度匹配资源时通过提高资源分配的时间粒度和资源量粒度,避免资源管理中的资源碎片和过度分配等问题,从而实现提高资源利用率和性能。

本发明的公开的云计算平台中细粒度资源匹配方法,包括以下步骤:

步骤1:云计算平台中服务器的角色分为计算服务器和管理服务器两种:计算服务器负责具体负载的执行,并定期向管理服务器汇报资源状态;管理服务器负责整个云平台的各种管理工作,包括向计算服务器分配计算任务。

计算服务器定期采集本服务器运行中任务资源使用情况,计算本服务器可用资源信息并汇报给管理服务器。

计算服务器上某种资源的可用资源量按以下公式计算:

其中,ri为第i次采样的资源量,ti为第i次采样的持续时间,t为采样的计算总时间,n为采样次数。

步骤2:管理服务器接收各计算服务器定期汇报的信息,并依据相似任务和资源压缩率推测任务的各种资源需求和持续时间。此处,相似任务指负载中与该任务具有相同执行逻辑且输入数据量相同的任务。任务的磁盘、网络带宽资源需求量按照任务与数据的相对位置分为任务与数据在同服务器、在同机架和其他3类分别推测。

任务在某进度所需的一种计算资源需求量及时间按以下公式计算:

其中,αn为第n次推测结果,βn为第n次的相似任务资源信息,rc为任务信息的资源压缩率,thr为最大压缩率限制系数,e为自然底数。

步骤3:管理服务器分析任务各进度的cpu、内存空间资源需求,将任务划分为多个执行阶段。

管理服务器遍历任务在各进度的cpu、内存空间资源需求量,并分别记录这两种资源量的最大值和最小值。当cpu或者内存空间资源需求量的最大值和最小值之差大于一定阈值,并且遍历的进度达到一定长度,则将遍历的进度划分为任务的一个执行阶段。任务执行阶段cpu、内存空间、磁盘空间等资源需求值为阶段内各进度该资源需求的最大值,内存带宽、磁盘带宽、网络带宽等资源的需求值为阶段内各进度该资源需求的平均值。

步骤4:当计算服务器上可用计算资源达到一定量时,管理服务器从待调度集合中挑选任务,分阶段匹配任务资源需求和服务器可用计算资源。

管理服务器首先检查计算服务器上可用资源是否达到匹配要求。其次,管理服务器按照资源分配公平性、数据本地性等策略排序待调度集合。再次,资源管理服务器取出任务,并尝试从推测结果中获取任务的推测信息。如果推测信息获取失败,则按照任务资源申请量匹配计算资源。如果推测信息获取成功,则分阶段依次匹配任务的资源需求。

管理服务器根据资源特性将cpu、内存、磁盘、网络等计算资源抽象为可压缩和不可压缩两类。在任务执行过程中,如果任务分配到的某种资源少于任务对该资源的需求量,任务可以通过延长执行时间正常完成,则该资源为可压缩资源,否则为不可压缩资源。

计算服务器上资源压缩率按以下公式计算:

其中,rc为资源压缩率,rr为资源的需求量,ru为资源分配量。如果资源为不可压缩资源,则其压缩率rc始终为0。

在匹配过程中,如果需求量大于可用资源量,则匹配失败。对于不可压缩资源,计算服务器该资源的可用资源量不做处理;对于可压缩资源,管理服务器依据计算服务器资源及负载情况计算该服务器各阶段各种资源的最大压缩率。

计算服务器在阶段内某种可压缩资源的最大压缩率按以下公式计算:

其中,服务器上已匹配n个任务,当前匹配任务为第n+1个,n+1个任务的资源总需求大于资源总量,第i个任务在阶段内完成的工作量为wi,△p为资源压缩引起的性能变化。

可压缩资源匹配中,计算服务器该资源的实际可用资源量按公式ai=ni+ri×ni计算;其中,ri为该服务器上该种资源的当前匹配阶段的最大可压缩率,ni为该服务器上该种资源的总量,ni为采集得到的该种资源的可用资源量。如果任务的所有执行阶段所有资源的需求均未匹配失败,则匹配成功。

具体地,匹配方法按以下步骤进行资源匹配:

step1),检查服务器可用资源量,如果可用资源量小于调度阈值,则结束调度;

step2),按照资源分配公平性、数据本地性等策略排序待调度任务集合。

step3),从待调度任务集合选取一个任务,获取任务各执行阶段的资源需求及持续时间;如果获取成功,则进入step5),否则按申请量匹配,通过后进入step7);未通过则进入step5);

step4),以任务资源申请量为需求量匹配资源,匹配成功则进入step7);

step5),s为任务执行阶段,n为服务器相应可用资源阶段,依次比较第i种资源在该执行阶段的资源需求si与可用资源阶段的资源可用量ai,如果第i中资源为不可压缩资源,则ai值为可用资源阶段内相应资源值ni;如果资源为可压缩资源,则ai值按照公式ai=ni+ri×ni计算,其中ri为该服务器上该种资源相应可用资源阶段内的最大可压缩率,ni为该服务器上该种资源的总量。如果资源需求大于可用资源,则匹配失败,进入step3),否则进入step6);

step6),如果s为任务最后执行阶段,则匹配成功,进入step7),否则重复执行step5),匹配下一阶段。

step7),检查该匹配是否影响服务器上其他任务执行,若检查通过则匹配完成,否则回到step3)。

步骤5:如果资源匹配成功,则管理服务器假设资源已经分配,检查该计算服务器上所有任务会受到影响而不能满足约束条件。如果所有任务约束条件均可以满足,则分配计算资源。

步骤6:管理服务器检查该计算服务器上是否剩余足够资源进入下一轮匹配,如果剩余资源满足条件,则进入下一轮匹配。

按上述方法即可实现对云计算平台计算资源的细粒度匹配。

下面给出采用本发明方法的一个具体应用实例:

参见图2,该实例结合在开源云计算平台yarn上,需要说明的是,本发明的方法并不仅仅用于开源云计算平台yarn,其他满足条件的应用平台也适用。

步骤1:applicationmaster向resourcemanager注册时,提供应用程序代码及参数的md5值和输入数据量信息。applicationmaster向resourcemanager申请任务所需计算资源时,使用applicationmaster和任务类型信息标识任务。

步骤2:nodemanager通过分析linuxproc文件夹下信息获取本节点上运行中任务信息及剩余资源信息。

nodemanager某种资源的可用资源量按以下公式计算:

其中,ri为第i次采样的资源量,ti为第i次采样的持续时间,t为采样的总时间,n为采样次数。

nodemanager将采集的资源信息及分析计算得出可用资源量等相关信息通过心跳的方式回报给resourcemanager。

步骤3:resourcemanager接收applicationmaster和nodemanager的请求及汇报,并将applicationmaster的应用注册和资源申请信息交由scheduler处理,将nodemanager汇报的资源信息交由estimator处理。

步骤4:estimator根据applicationmaster的应用注册信息、资源请求信息识别相似任务。相似任务指负载中与该任务具有相同执行逻辑且输入数据量相同的任务。

estimator处理nodemanager汇报信息,推测任务的资源需求及持续时间。任务的磁盘、网络带宽资源需求量按照任务与数据的相对位置分为任务与数据在同服务器、在同机架和其他3类分别推测。

任务在某进度的所需的一种计算资源需求量及时间按以下公式计算:

其中,αn为第n次推测结果,βn为第n次的相似任务资源信息,rc为相似任务信息的资源压缩率,thr为最大压缩率限制系数,e为自然底数。

estimator分析任务cpu、内存空间需求信息,将任务划分为多个执行阶段。estimator遍历任务在各进度的cpu、内存空间资源需求量,并分别记录这两种资源量的最大值和最小值。当cpu或者内存空间资源需求量的最大值和最小值之差大于划分阈值,并且遍历的进度达到划分长度,则将遍历的进度划分为任务的一个执行阶段。此处划分阈值默认取资源总量的20%,划分长度默认为任务进度总长的5%。划分阈值及划分长度应根据具体平台及负载调整。任务执行阶段cpu、内存空间、磁盘空间等资源需求值为阶段内该资源需求的最大值,内存带宽、磁盘带宽、网络带宽等资源的需求值为阶段内该资源需求的平均值。

步骤5:scheduler匹配applicationmaster的资源申请和nodemanager上的可用计算资源。

scheduler将applicationmaster的资源申请加入待调度集合中。

scheduler检查nodemanager上的可用计算资源是否达到匹配要求。

scheduler根据资源分配公平性、数据本地性等策略排序待调度集合

scheduler从排序后的待调度集合中取出待调度任务,并从estimator获取推测得出的任务资源需求及持续时间等信息。如果信息获取失败,则按照资源申请量进行匹配。如果信息获取成功,则依次匹配任务的所有执行阶段的所有资源需求。

匹配中,根据资源特性将cpu、内存、磁盘、网络等计算资源抽象为可压缩和不可压缩两类。在任务执行过程中,如果任务分配到的某种资源少于任务对该资源的需求量,任务可以通过延长执行时间正常完成,则该资源为可压缩资源,否则为不可压缩资源。

nodemanager资源压缩的程度按以下公式计算:

其中,rc为资源压缩率,rr为资源的需求量,ru为资源分配量。如果资源为不可压缩资源,则其压缩率rc始终为0。

nodemanager在某阶段内某种可压缩资源的最大压缩率按以下公式计算:

其中,nodemanager上有n个已匹配任务,当前匹配任务为第n+1个,n+1个任务的资源总需求大于资源总量,第i个任务在阶段内完成的工作量为wi,△p为资源压缩引起的性能变化。

匹配过程中,如果任务某种资源需求量大于nodemanager上相应可用资源量,则匹配失败。nodemanager上不可压缩资源的可用资源量为采集量;可压缩资源的可用资源量按公式ai=ni+ri×ni计算,其中ri为该服务器上该种资源该匹配阶段的最大可压缩率,ni为该服务器上该种资源的总量,ni为采集得到的该种资源的可用资源量。如果任务的所有执行阶段所有资源的需求均未匹配失败,则匹配成功。

步骤6:匹配成功之后,scheduler在会检查若该匹配决策生效nodemanager上所有执行中任务的约束条件是否能得到满足。如果检查通过,则scheduler向发出资源请求的applicationmaster分配计算资源。

分配资源之后,scheduler会检查nodemanager所在服务器的剩余资源,决定是否进入下一轮调度。

步骤7:获得资源分配的applicationmaster与计算资源所在nodemanager通信,启动相应任务。

实际测试结果表明,该方法得出的资源匹配结果可以避免资源碎片、过度分配,提高云计算平台的资源利用效率,最终提升云计算平台的整体吞吐率。

通过上述实施例可以看,本发明可以用于云计算平台资源管理与作业调度中。本发明根据相似任务推测任务资源需求和持续时间,基于资源需求将任务划分为多个执行阶段,分阶段分资源特性分别匹配任务资源需求与服务器计算资源,必要时在可接受范围内延长单个任务的完成时间换取更高的资源利用率和任务并行数量,最终提高整体性能。

本发明不仅可用于云计算平台中的资源管理和作业调度中,基于集群的资源管理平台都可借鉴改进。

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