一种节点资源分配方法及装置与流程

文档序号:14175121阅读:248来源:国知局
一种节点资源分配方法及装置与流程

本发明属于集群节点的资源调度技术领域,尤其涉及一种节点资源分配方法及装置。



背景技术:

目前,在云计算集群环境中,通常使用预分配的方式为待处理任务分配cpu(centralprocessingunit,中央处理器)资源,具体而言,预估待处理任务的cpu资源使用量,并根据预估结果实现资源预分配,之后,任务的进程基于预分配的资源进行全生命周期的运行。

实际应用中,由于无法精确预估待处理任务的cpu资源实际使用量,且在待处理任务的进程运行过程中,其cpu资源使用情况往往存在波动,从而一般会为待处理任务预分配一个较大、较为宽裕的资源量,这将不可避免地导致任务进程运行过程中为其分配的资源经常存在浪费,从而使得集群节点的资源利用率较低。



技术实现要素:

有鉴于此,本发明的目的在于提供一种节点资源分配方法及装置,旨在克服现有技术存在的资源浪费的问题,提升集群节点的资源利用率。

为此,本发明公开如下技术方案:

一种节点资源分配方法,包括:

在任务进程在节点上运行的过程中,检测所述任务进程对所述节点的节点资源的实际使用信息;其中,所述任务进程基于当前已分配的节点资源运行;

基于所述实际使用信息并结合所述节点的资源剩余信息,调整为所述任务进程所分配的节点资源的资源量,并基于调整后的资源量对所述任务进程进行节点资源的重新分配。

上述方法,优选的,所述实际使用信息包括所述任务进程对所述节点的节点资源的实际使用量;

则所述检测所述任务进程对所述节点的节点资源的实际使用信息,包括:

以预定的时间间隔检测所述任务进程对所述节点的节点资源的实际使用量。

上述方法,优选的,所述资源剩余信息包括所述节点的资源剩余量;

则所述基于所述实际使用信息并结合所述节点的资源剩余信息,调整为所述任务进程所分配的节点资源的资源量,包括:

若所述实际使用量小于当前的资源动态分配参考值,则基于所述实际使用量及所述节点的资源剩余量,降低为所述任务进程所分配的节点资源的资源量;

若所述实际使用量不小于所述资源动态分配参考值,则基于所述实际使用量及所述节点的资源剩余量,提升为所述任务进程所分配的节点资源的资源量。

上述方法,优选的,所述若所述实际使用量小于当前的资源动态分配参考值,则基于所述实际使用量及所述节点的资源剩余量,降低为所述进程所分配的节点资源的资源量,进一步包括:

若d(p)<c(p),则调整c(p)为c1(p),其中,c1(p)=max(d(p),a(p)*r);d(p)表示所述进程当前对节点资源的实际使用量,c(p)表示当前的资源动态分配参考值,a(p)表示对所述进程的节点资源量的预分配值,r表示基于所述a(p)的进程节点资源的最小保护比例,所述最小保护比例用于使得在为所述任务进程分配节点资源时,所分配的节点资源不低于a(p)*r;当所述任务进程被调度到所述节点时,所述c(p)被初始化,且初始化值为a(p)*r;

当c(p)调整为c1(p)后,计算所述节点的节点资源剩余量t1,其中,t1=t+c(p)-max(d(p),a(p)*r)t表示c(p)调整之前所述节点的节点资源剩余量;

将为所述进程所分配的节点资源的资源量调整为c1(p)+b1(p)*t1’;其中,t1’表示当前对节点中所有进程进行资源动态分配参考值调整后节点的资源剩余量,b1(p)表示c(p)调整为c1(p)后,所述进程对所述节点的节点资源的占用比例,b1(p)=c1(p)/c1,c1表示c(p)调整为c1(p)以及对节点中除所述任务进行之外的其他所有进程的资源动态分配参考值进行调整后,所述节点中所有进程当前的资源动态分配参考值之和。

上述方法,优选的,所述若所述实际使用量不小于相应的资源量参考基准值,则基于所述实际使用量及所述节点的资源剩余量,提升为所述进程所分配的节点资源的资源量,进一步包括:

若d(p)>=c(p),则调整c(p)为c2(p),其中,c2(p)=min(d(p),a(p));

计算调整c(p)为c2(p)后,所述节点的节点资源剩余量t2,其中,t2=t+c(p)-min(d(p),a(p));

将为所述进程所分配的节点资源的资源量调整为c2(p)+b2(p)*t2’;其中,t2’表示当前对节点中所有进程进行资源动态分配参考值调整后节点的资源剩余量,b2(p)表示调整所述c(p)为c2(p)后,所述进程对所述节点的节点资源的占用比例,b2(p)=c2(p)/c2,c2表示调整所述c(p)为c2(p)以及对节点中其他所有进程的资源动态分配参考值进行调整后,所述节点中所有进程当前的资源动态分配参考值之和。

上述方法,优选的,在所述检测进程对所述节点的节点资源的实际使用信息之前还包括:

当将所述任务进程调度到所述节点时,基于为所述任务进程所设定的节点资源的最小保护比例及所述节点的资源剩余量,对所述任务进程进行节点资源分配。

上述方法,优选的,所述当将所述进程调度到所述节点时,基于为所述进程所设定的节点资源的最小保护情况及所述节点的资源剩余情况,对所述进程进行节点资源分配,包括:

当将所述进程调度到所述节点时,初始化所述进程的资源动态分配参考值c(p)=a(p)*r;其中,a(p)表示对所述进程的节点资源量的预分配值,r表示基于所述a(p)的进程节点资源的最小保护比例;

计算当前所述进程对所述节点的节点资源的占用比例,b(p)=c(p)/c;其中,c表示所述节点中当前所有已分配资源的进程当前的资源动态分配参考值之和;

计算需为所述节点分配的节点资源的资源量为c(p)+b(p)*t,并基于计算出的所述资源量c(p)+b(p)*t对所述进程进行节点资源分配;其中,t表示所述节点当前的资源剩余量,t=t总-c,t总表示所述节点的节点资源总量。

一种节点资源分配装置,包括:

检测单元,用于在任务进程在节点上运行的过程中,检测所述任务进程对所述节点的节点资源的实际使用信息;其中,所述任务进程基于当前已分配的节点资源运行;

动态分配单元,用于基于所述实际使用信息并结合所述节点的资源剩余信息,调整为所述任务进程所分配的节点资源的资源量,并基于调整后的资源量对所述任务进程进行节点资源的重新分配。

上述装置,优选的,所述实际使用信息包括所述任务进程对所述节点的节点资源的实际使用量;所述资源剩余信息包括所述节点的资源剩余量;

则所述动态分配单元,进一步用于:

若所述实际使用量小于当前的资源动态分配参考值,则基于所述实际使用量及所述节点的资源剩余量,降低为所述任务进程所分配的节点资源的资源量;若所述实际使用量不小于所述资源动态分配参考值,则基于所述实际使用量及所述节点的资源剩余量,提升为所述任务进程所分配的节点资源的资源量。

上述装置,优选的,还包括:

初始分配单元,用于在将所述任务进程调度到所述节点时,基于为所述任务进程所设定的节点资源的最小保护情况及所述节点的资源剩余情况,对所述任务进程进行节点资源分配。

由以上方案可知,本发明提供的节点资源分配方法及装置,在任务进程在节点上运行的过程中,检测该任务进程对所述节点的节点资源的实际使用信息,在此基础上,基于检测的任务进程对节点资源的实际使用信息并结合节点的资源剩余信息,调整为任务进程所分配的节点资源的资源量,并基于调整后的资源量对任务进程进行节点资源的重新分配。由此可见,本发明提出了在任务进程运行过程中,基于任务进程对节点资源的实际使用信息并结合节点的资源剩余信息,对任务进程的节点资源进行动态调整、分配的方案,与现有技术的预分配方式相比,可有效降低任务进程运行过程中对节点资源的浪费,从而提升了节点的资源利用率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本发明实施例一提供的节点资源分配方法流程图;

图2是本发明实施例二提供的节点资源分配方法流程图;

图3是本发明实施例三提供的节点资源分配方法流程图;

图4-图5是本发明实施例四提供的节点资源分配装置的结构示意图。

具体实施方式

为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:

云计算集群环境:一个计算集群中存在大量服务器,并在其中的一个服务器中存在一个任务调度器;某个计算任务,设定自己对cpu、内存、磁盘等资源的需求量,提交到调度器,调度器选择一个满足该任务所有需求的服务器,利用选择的服务器分配任务所需的这些资源,并利用这些资源启动任务。

cgroups:全称为controlgroups,是linux系统中一种控制进程使用有限cpu、内存、io带宽、子进程数目等多种资源的机制。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本发明实施例一提供一种节点资源分配方法,该方法可应用于但不局限于云计算集群等环境中,云计算集群中一般存在大量的服务器作为各个集群节点,并在其中的一个服务器中存在一个任务调度器,基于此,本发明方法可进一步应用于云计算集群等环境中用于进行任务调度的集群节点中,示例性地,比如具体可应用于云计算集群环境中用于进行任务调度的服务器所包含的任务调度器中,以克服现有技术在进行节点资源分配时所存在的资源浪费的问题,提升集群节点的资源利用率。接下来,将对本发明方法进行详细阐述。

参考图1示出的一种节点资源分配方法流程图,该方法可以包括以下步骤:

步骤101、在任务进程在节点上运行的过程中,检测所述任务进程对所述节点的节点资源的实际使用信息;其中,所述任务进程基于当前已分配的节点资源运行。

本步骤中所述节点可以为云计算集群等环境中的服务器节点,所述节点资源具体可以为集群中服务器节点的cpu资源。

在将所需处理的任务调度到集群中某一节点上,并在该节点上对该任务的任务进程进行运行过程中,为了克服现有技术的预分配方式所存在的节点资源浪费问题,本实施例提出在任务进程运行过程中,检测任务进程对节点资源的实际使用信息,该实际使用信息比如可以包括任务进程对节点资源的实际使用量等,以使得后续可基于任务进程对节点资源的实际使用信息,来对任务进程的节点资源进行动态调整、分配。

在任务进程运行过程中,可采用实时检测或周期性检测等方式,来检测任务进程对服务器节点的节点资源的实际使用量,本实施例优选地采用周期性检测方式,以预定的时间间隔对任务进程的节点资源实际使用量进行周期性检测。

本步骤具体利用cgroups对进程cpu资源的限制功能,来监测任务进程对服务器节点的cpu资源的实际使用量。

步骤102、基于所述实际使用信息并结合所述节点的资源剩余信息,调整为所述任务进程所分配的节点资源的资源量,并基于调整后的资源量对所述任务进程进行节点资源的动态再分配。

在检测出任务进程对服务器节点的cpu资源的实际使用量基础上,本步骤基于检测出的实际使用量并结合所述节点的资源剩余量,对该任务进程的节点资源的资源量进行动态调整、分配,比如,在检测出任务进程对节点资源的实际使用量较少,从而对已分配的节点资源的利用率较低时,可适当降低为该任务进程所分配的资源量,以降低任务进程对节点资源的浪费,在检测出任务进程对节点资源的实际使用量较高时,为避免出现资源不足的情况,可适当提升为该任务进程所分配的资源量。

由以上方案可知,本发明提供的集群节点的资源分配方法,在任务进程在节点上运行的过程中,检测该任务进程对所述节点的节点资源的实际使用信息,在此基础上,基于检测的任务进程对节点资源的实际使用信息并结合节点的资源剩余信息,调整为任务进程所分配的节点资源的资源量,并基于调整后的资源量对任务进程进行节点资源的重新分配。由此可见,本发明提出了在任务进程运行过程中,基于任务进程对节点资源的实际使用信息并结合节点的资源剩余信息,对任务进程的节点资源进行动态调整、分配的方案,与现有技术的预分配方式相比,可有效降低任务进程运行过程中对节点资源的浪费,从而提升了节点的资源利用率。

实施例二

本实施例二提供所述步骤102的具体实现方案,参考图2示出的一种节点资源分配方法流程图,本实施例中,所述步骤102可以通过以下处理过程实现:

步骤1021、若所述实际使用量小于当前的资源动态分配参考值,则基于所述实际使用量及所述节点的资源剩余量,降低为所述任务进程所分配的节点资源的资源量;

步骤1022、若所述实际使用量不小于所述资源动态分配参考值,则基于所述实际使用量及所述节点的资源剩余量,提升为所述任务进程所分配的节点资源的资源量。

具体而言,若任务进程在服务器节点上运行过程中,对服务器节点的节点资源实际使用量小于当前的资源动态分配参考值,则表示任务进程对所分配的节点资源如cpu资源的利用率较低,针对该情况,为了减少节点资源浪费,本实施例基于所述实际使用量及所述节点的资源剩余量,降低为所述任务进程所分配的节点资源的资源量;

反之,若任务进程对节点资源的实际使用量不小于所述资源动态分配参考值,即大于等于所述资源动态分配参考值,则表示任务进程对节点资源的需求量较高,针对该情况,本实施例基于所述实际使用量及所述节点的资源剩余量,提升为所述任务进程所分配的节点资源的资源量,以满足所述任务进程对节点资源的实际需求。

所述资源动态分配参考值可作为一个阈值使用,用于衡量任务进程对节点资源的实际使用量的高低,在任务进程运行过程中,该资源动态分配参考值会根据任务进程实际使用的资源量进行调整,具体调整情况参见下文的描述。

具体地,针对被调度到服务器节点的任务进程p,本实施例为其设定一个节点资源的预分配值a(p),该预分配值a(p)可结合任务实际情况及过往经验来设定。并针对该预分配值a(p)为任务进程p设定一个节点资源的最小保护比例r,该最小保护比例是指在为任务进程p分配节点资源时,所分配的节点资源量占所述预分配值a(p)的最低比例阈值,也就是说,在后续为任务进程p动态调整、分配节点资源时,所分配的cpu资源量不小于a(p)*r。同时假设任务进程p在运行过程中对cpu资源的实际使用量为d(p),任务进程p的资源占用比例为b(p),任务进程p所在的服务器节点的cpu资源剩余量为t,任务进程p的资源动态分配参考值为c(p),并在将任务进程p调度到所述服务器节点上时,对所述c(p)进行初始化,c(p)的初始化值为a(p)*r。

在此基础上,在任务进程p在服务器节点上运行的过程中,以固定时间间隔周期性检测任务进程p的对节点资源的实际使用量d(p),实际应用中,可以固定时间间隔检测服务器节点上所有进程(包括所述任务进程p在内)的资源的实际使用量。

基于检测结果,当d(p)<c(p)时,则表示任务进程p对已分配的节点资源未能充分利用,从而对已分配的节点资源的利用率较低,针对该情况,本实施例调整c(p)为c1(p),其中,c1(p)=max(d(p),a(p)*r),c(p)表示当前的资源动态分配参考值。

之后,计算调整c(p)为c1(p)后,所述节点的节点资源剩余量t1,其中,t1=t+c(p)-max(d(p),a(p)*r),t表示c(p)调整之前所述节点的节点资源剩余量。

与此同时,调整节点中除所述任务进程p之外的其他所有进程的资源动态分配参考值(其他各节点同样基于本发明方法进行资源调整),在此基础上,调整为所述任务进程p所分配的节点资源的资源量为c1(p)+b1(p)*t1’;其中,t1’表示当前对节点中所有进程进行资源动态分配参考值调整后节点的资源剩余量,b1(p)表示调整所述c(p)为c1(p)后,所述任务进程p对所述节点的节点资源的占用比例,b1(p)=c1(p)/c1,c1表示调整所述c(p)为c1(p)以及对节点中其他进程的资源动态分配参考值进行调整后,所述节点中所有进程当前的资源动态分配参考值之和。

通过以上处理过程,可在任务进程p对节点资源的实际使用量较小时,基于任务进程p的资源实际使用量及任务进程p所在服务器节点的资源剩余量,有效降低任务进程p的资源分配量,使得在任务进程p释放相应闲置资源,从而可降低资源浪费,提升服务器节点的资源利用率。

而当d(p)>=c(p)时,则表示任务进程p对已分配的资源进行了充分利用,对节点资源的实际需求量较高,针对该情况,为避免出现资源不足情况,本实施例调整c(p)为c2(p),其中,c2(p)=min(d(p),a(p));

之后,计算调整c(p)为c2(p)后,所述节点的节点资源剩余量t2,其中,t2=t+c(p)-min(d(p),a(p));

与此同时,调整节点中其他各进程的资源动态分配参考值,在此基础上,调整为所述任务进程p所分配的节点资源的资源量为c2(p)+b2(p)*t2’;其中,t2’表示当前对节点中所有进程进行资源动态分配参考值调整后节点的资源剩余量,b2(p)表示调整所述c(p)为c2(p)后,所述任务进程p对所述节点的节点资源的占用比例,b2(p)=c2(p)/c2,c2表示调整所述c(p)为c2(p)以及对节点中其他各进程的资源动态分配参考值进行调整后,所述节点中所有进程当前的资源动态分配参考值之和。

通过以上处理过程,可在任务进程p对节点资源的实际使用量较大时,基于任务进程p的资源实际使用量及任务进程p所在服务器节点的资源剩余量,有效提升任务进程p的资源分配量,以满足任务进程p对节点资源的实际使用需求。

需要说明的是,针对节点中的所有进程,均是采用本发明提供的上述动态调整进程节点资源的方案进行进程资源的动态分配,即周期性检测集群节点中所有进程对节点资源的实际使用量,并基于各进程对节点资源的实际使用量与其对应的当前动态分配参考值的大小关系,动态调整各进程的动态分配参考值c(p)以及服务器节点的剩余资源量t,并在调整c(p)及t后,重新计算所有进程的资源占用比例b(p),最终,在此基础上,利用调整后的服务器节点的剩余资源量及各进程的资源占用比例,动态调整各进程的节点资源量,实现节点资源量的动态分配。

本实施例实现了基于任务进程对节点资源的实际使用信息及节点的资源剩余信息,对任务进程被分配的节点资源进行周期性调整,可有效提升节点的资源利用率。

实施例三

本实施例中,参考图3示出的一种集群节点的资源分配方法流程图,所述方法在所述步骤101之前还可以包括以下步骤:

步骤101’、当将所述任务进程调度到所述节点时,基于为所述任务进程所设定的节点资源的最小保护比例及所述节点的资源剩余信息,对所述任务进程进行节点资源分配。

具体地,该步骤101’可以通过以下的处理过程实现:

当将任务进程p调度到所述节点时,初始化所述任务进程p的资源动态分配参考值c(p)=a(p)*r;其中,a(p)表示对所述进程的节点资源量的预分配值,r表示基于所述a(p)的进程节点资源的最小保护比例;

计算当前所述任务进程p对所述节点的节点资源的占用比例b(p)=c(p)/c;其中,c表示所述节点中当前所有进程的资源动态分配参考值之和;

计算需为所述任务进程p分配的节点资源的资源量为c(p)+b(p)*t,并基于计算出的所述资源量c(p)+b(p)*t对所述任务进程p进行节点资源分配;其中,t表示所述节点当前的资源剩余量,t=t总-c,t总表示所述节点的节点资源总量。

此处,需要说明的是,当为服务器节点中新调度的任务进程p分配节点资源后,需重新计算该服务器节点的剩余资源量t’=t-c(p),并基于新计算的剩余资源量重新计算除所述任务进程p之外的其他各进程的资源占用比例b(p')=c(p')/t',其中,c(p')表示进程p'(采用p'泛指其他进程中的某一进程)当时的资源动态分配参考值,进而在此基础上,在cgroups中设置其他各节点的资源占用量为c(p')+b(p')*t',从而实现各进程资源的动态分配。

结合实施例二的阐述,可知,利用本实施例方案,可以在服务器节点中有新的进程被调度时,或者在各进程运行过程中当达到以固定的时间间隔所设置的周期性检测时刻时,实现对服务器节点中的各进程进行节点资源的动态分配,而对于进程贡献的闲置资源而言,可应用于该进程所在的服务器节点中其他已分配资源的进程的资源重分配,或者还可以用于服务器节点中新调度的节点的资源分配,可有效提升云计算集群中服务器节点的资源利用率。

实施例四

本实施例四提供一种节点资源分配装置,参考图4示出的节点资源分配装置的结构示意图,该装置可以包括:

检测单元100,用于在任务进程在节点上运行的过程中,检测任务进程对所述节点的节点资源的实际使用信息;其中,所述任务进程基于当前已分配的节点资源运行;动态分配单元200,用于基于所述实际使用信息并结合所述节点的资源剩余信息,调整为所述任务进程所分配的节点资源的资源量,并基于调整后的资源量对所述任务进程进行节点资源的重新分配。

在本发明实施例的一实施方式中,所述检测单元,进一步用于:以预定的时间间隔检测所述任务进程对所述节点的节点资源的实际使用量。

在本发明实施例的一实施方式中,所述动态分配单元,进一步用于:若所述实际使用量小于当前的资源动态分配参考值,则基于所述实际使用量及所述节点的资源剩余量,降低为所述任务进程所分配的节点资源的资源量;若所述实际使用量不小于所述资源动态分配参考值,则基于所述实际使用量及所述节点的资源剩余量,提升为所述任务进程所分配的节点资源的资源量。

在本发明实施例的一实施方式中,参考图5示出的节点资源分配装置的结构示意图,所述装置还可以包括:初始分配单元100’,用于在将所述任务进程调度到所述节点时,基于为所述任务进程所设定的节点资源的最小保护比例及所述节点的资源剩余信息,对所述任务进程进行节点资源分配。

此处,需要说明的是,本实施例涉及的节点资源分配装置的描述,与上文方法的描述是类似的,且同方法的有益效果描述,对于本发明的节点资源分配装置在本实施例中未披露的技术细节,请参照本发明方法实施例的说明,本实施对此不再作赘述。

综上所述,本发明方案具有以下优势:可以提高云计算集群等环境中服务器节点的cpu资源实际利用率,进而可减小集群中服务器的实际需求量,节省成本;利用本发明方案可从微观的角度调整资源利用率,不对集群现有资源分配方式进行侵入式修改;另外,利用本发明方案可实现运行时动态调整资源实际分配情况,在提高实际资源利用率的同时不影响已有的集群结构与分配算法。

还需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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