CN113806063A - 集群资源调度方法、装置、服务器及存储介质 - Google Patents
集群资源调度方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN113806063A CN113806063A CN202010555863.0A CN202010555863A CN113806063A CN 113806063 A CN113806063 A CN 113806063A CN 202010555863 A CN202010555863 A CN 202010555863A CN 113806063 A CN113806063 A CN 113806063A
- Authority
- CN
- China
- Prior art keywords
- resources
- resource
- super
- job
- allocation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开关于一种集群资源调度方法、装置、服务器及存储介质,该方法包括:接收集群内服务器节点发送的当前超配资源,当前超配资源是服务器节点基于当前运行的正常作业的已使用资源和可分配总资源确定的,包括未分配资源和已分配但当前未被使用的资源,正常作业为基于分配资源在运行的作业;将作业执行参数值低于正常作业的未运行作业调度到服务器节点的当前超配资源中,以使得服务器节点使用当前超配资源运行未运行作业,作业执行参数值为与作业对应的执行顺序值。本公开可以将正常作业的申请资源中未被使用的资源得以充分利用,来运行作业执行参数值较低的作业,解决了作业的申请值和使用值不同造成的资源浪费的问题,提升了集群内的资源利用率。
Description
技术领域
本公开涉及资源调度技术领域,尤其涉及一种集群资源调度方法、装置、服务器及存储介质。
背景技术
相关技术中,分布式资源管理调度系统基本上是基于申请配额进行分配和管理。例如,hadoop生态的是基于机器的配置资源进行分配,为保障系统稳定性会预留资源给操作系统,配置资源会小于机器物理资源,资源分配严格按照集群所有机器的配置总量进行调配,因为作业执行过程中基本不会将申请资源用满,所以即使集群资源分配很满,也很难使机器利用率达到很高的水准,进而物理服务器资源不能得到充分的利用;k8s云生态资源管理系统提供了burstable(突发型)和besteffort(尽力型)资源进行相互填补,但是,仍然存在着因申请值较使用值相差较大造成的集群物理资源浪费的问题。
相关技术中根据申请配额进行资源的分配和管理,使用值往往达不到申请值,会造成逻辑资源紧张而物理机资源空闲的现象,进而浪费大量的物理服务器资源。
发明内容
本公开提供一种集群资源调度方法、装置、服务器及存储介质,以至少解决相关技术中因申请值与使用值不同造成物理资源浪费的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种集群资源调度方法,应用于集群中的调度中心服务器中,包括:
接收集群内服务器节点发送的当前超配资源,所述当前超配资源是服务器节点基于当前运行的正常作业的已使用资源和可分配总资源确定的,包括未分配资源和已分配但当前未被使用的资源,所述正常作业为基于分配资源在运行的作业;
将作业执行参数值低于所述正常作业的未运行作业调度到所述服务器节点的当前超配资源中,以使得所述服务器节点使用所述当前超配资源运行所述未运行作业,所述作业执行参数值为与作业对应的执行顺序的值。
可选的,还包括:
获取正常作业的历史资源使用数据;
根据所述历史资源使用数据,确定正常作业的消耗资源随时间的周期性变化规律;
根据所述周期性变化规律,周期性调整服务器节点的允许超配最大值。
根据本公开实施例的第二方面,提供一种集群资源调度方法,应用于集群内服务器节点中,包括:
获取当前运行的正常作业的已使用资源,所述正常作业为基于分配资源在运行的作业;
根据所述已使用资源和可分配总资源,确定当前超配资源,所述当前超配资源包括未分配资源和已分配但当前未被使用的资源;
将所述当前超配资源发送给调度中心服务器,所述调度中心服务器用于将作业执行参数值低于所述正常作业的未运行作业调度到所述当前超配资源中,所述作业执行参数值为与作业对应的执行顺序的值;
接收所述调度中心服务器分配来的未运行作业,将所述未运行作业作为超配作业,并使用所述当前超配资源运行所述超配作业。
可选的,所述根据所述已使用资源和可分配总资源,确定当前超配资源,包括:
根据所述已使用资源和可分配总资源,确定超配系数;
确定预设时间内回收历史超配资源的次数,并根据所述次数确定超配衰减系数;
根据所述超配系数、允许超配最大值和所述超配衰减系数,确定当前超配资源。
可选的,所述可分配总资源还包括缓冲区;
所述根据所述已使用资源和可分配总资源,确定超配系数,包括:
若所述已使用资源不为0,则根据所述已使用资源、缓冲区和可分配总资源,确定超配系数;
若所述已使用资源为0,则确定超配系数为预设超配系数。
可选的,所述根据所述已使用资源、缓冲区和可分配总资源,确定超配系数,包括:
确定所述已使用资源和缓冲区之和与所述可分配总资源的比例,并将1与所述比例之差作为所述超配系数。
可选的,在所述使用所述当前超配资源运行所述超配作业之后,还包括:
若接收到所述正常作业的突发资源请求,则使用所述缓冲区处理所述突发资源请求。
可选的,在所述使用所述缓冲区处理所述突发资源请求时,还包括:
获取超配作业的运行时长,并按照所述运行时长从短到长的顺序,对所述超配作业进行排序;
根据超配作业的排序,依次回收超配作业使用的当前超配资源,直至回收的当前超配资源满足所述突发资源请求所请求的资源;
使用回收的当前超配资源处理突发资源请求,释放所述缓冲区。
可选的,所述根据所述次数确定超配衰减系数,包括:
根据所述次数,按照如下公式确定超配衰减系数:
其中,β为超配衰减系数,n为预设时间内回收历史超配资源的次数,t为上次回收历史超配资源到当前时间的时长,α1为第一系数,α2为第二系数,第一系数大于第二系数。
可选的,所述获取当前运行的正常作业的已使用资源,包括:
获取正常作业的实际使用资源,并获取正常作业的申请资源配额;
将所述申请资源配额的预设比例与所述实际使用资源中的最大值,作为正常作业的已使用资源。
可选的,还包括:
设置所述正常作业的内存溢出分数,作为第一分数,并设置基于当前超配资源运行的超配作业的内存溢出分数,作为第二分数,所述第二分数大于第一分数;
若发生内存溢出,则根据所述第一分数和第二分数停止运行超配作业并释放所述超配作业占用的当前超配资源。
根据本公开实施例的第三方面,提供一种集群资源调度装置,应用于集群中的调度中心服务器中,包括:
超配资源接收模块,被配置为接收集群内服务器节点发送的当前超配资源,所述当前超配资源是服务器节点基于当前运行的正常作业的已使用资源和可分配总资源确定的,包括未分配资源和已分配但当前未被使用的资源,所述正常作业为基于分配资源在运行的作业;
超配资源调度模块,被配置为将作业执行参数值低于所述正常作业的未运行作业调度到所述服务器节点的当前超配资源中,以使得所述服务器节点使用所述当前超配资源运行所述未运行作业,所述作业执行参数值为与作业对应的执行顺序的值。
可选的,所述集群资源调度装置还包括:
历史资源数据获取模块,被配置为获取正常作业的历史资源使用数据;
资源规律确定模块,被配置为根据所述历史资源使用数据,确定正常作业的消耗资源随时间的周期性变化规律;
允许超配值调整模块,被配置为根据所述周期性变化规律,周期性调整服务器节点的允许超配最大值。
根据本公开实施例的第四方面,提供一种集群资源调度装置,应用于集群内服务器节点中,包括:
已使用资源获取模块,被配置为获取当前运行的正常作业的已使用资源,所述正常作业为基于分配资源在运行的作业;
超配资源确定模块,被配置为根据所述已使用资源和可分配总资源,确定当前超配资源,所述当前超配资源包括未分配资源和已分配但当前未被使用的资源;
超配资源发送模块,被配置为将所述当前超配资源发送给调度中心服务器,所述调度中心服务器用于将作业执行参数值低于所述正常作业的未运行作业调度到所述当前超配资源中;
超配作业运行模块,被配置为接收所述调度中心服务器分配来的未运行作业,将所述未运行作业作为超配作业,并使用所述当前超配资源运行所述超配作业。
可选的,所述超配资源确定模块包括:
超配系数确定单元,被配置为根据所述已使用资源和可分配总资源,确定超配系数;
超配衰减系数确定单元,被配置为确定预设时间内回收历史超配资源的次数,并根据所述次数确定超配衰减系数;
超配资源确定单元,被配置为根据所述超配系数、允许超配最大值和所述超配衰减系数,确定当前超配资源。
可选的,所述可分配总资源还包括缓冲区;
所述超配系数确定单元包括:
第一超配系数确定子单元,被配置为若所述已使用资源不为0,则根据所述已使用资源、缓冲区和可分配总资源,确定超配系数;
第二超配系数确定子单元,被配置为若所述已使用资源为0,则确定超配系数为预设超配系数。
可选的,所述第一超配系数确定子单元具体被配置为:
若所述已使用资源不为0,则确定所述已使用资源和缓冲区之和与所述可分配总资源的比例,并将1与所述比例之差作为所述超配系数。
可选的,所述集群资源调度装置还包括:
突发请求处理模块,被配置为若接收到所述正常作业的突发资源请求,则使用所述缓冲区处理所述突发资源请求。
可选的,所述集群资源调度装置还包括:
超配作业排序模块,被配置为获取超配作业的运行时长,并按照所述运行时长从短到长的顺序,对所述超配作业进行排序;
超配资源回收模块,被配置为根据超配作业的排序,依次回收超配作业使用的当前超配资源,直至回收的当前超配资源满足所述突发资源请求所请求的资源;
缓冲区释放模块,被配置为使用回收的当前超配资源处理突发资源请求,释放所述缓冲区。
可选的,所述超配衰减系数确定单元具体被配置为:
确定预设时间内回收历史超配资源的次数,并根据所述次数,按照如下公式确定超配衰减系数:
其中,β为超配衰减系数,n为预设时间内回收历史超配资源的次数,t为上次回收历史超配资源到当前时间的时长,α1为第一系数,α2为第二系数,第一系数大于第二系数。
可选的,所述已使用资源获取模块包括:
资源获取单元,被配置为获取正常作业的实际使用资源,并获取正常作业的申请资源配额;
已使用资源确定单元,被配置为将所述申请资源配额的预设比例与所述实际使用资源中的最大值,作为正常作业的已使用资源。
可选的,所述集群资源调度装置还包括:
内存溢出分数设置模块,被配置为设置所述正常作业的内存溢出分数,作为第一分数,并设置基于当前超配资源运行的超配作业的内存溢出分数,作为第二分数,所述第二分数大于第一分数;
内存溢出处理模块,被配置为若发生内存溢出,则根据所述第一分数和第二分数停止运行超配作业并释放所述超配作业占用的当前超配资源。
根据本公开实施例的第五方面,提供一种服务器,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的集群资源调度方法或第二方面所述的集群资源调度方法。
根据本公开实施例的第六方面,提供一种存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如第一方面所述的集群资源调度方法或第二方面所述的集群资源调度方法。
根据本公开实施例的第七方面,提供一种计算机程序产品,该计算机程序产品包括可读性程序代码,该可读性程序代码由电子设备的处理器执行时,使得电子设备能够执行如第一方面或第二方面所述的集群资源调度方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开实施例的调度中心服务器通过接收集群内服务器节点发送的当前超配资源,将作业执行参数值低于正常作业的未运行作业调度到服务器节点的当前超配资源中,使得服务器节点使用当前超配资源运行所述未运行作业,由于当前超配资源包括未分配资源和已分配但当前未被使用的资源,从而可以将正常作业的申请资源中未被使用的资源得以充分利用,来运行作业执行参数值较低的作业,解决了作业的申请值和使用值不同造成的资源浪费的问题,提升了集群内的资源利用率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种集群资源调度方法的流程图;
图2是根据一示例性实施例示出的一种集群资源调度方法的流程图;
图3是根据一示例性实施例示出的一种集群资源调度方法的流程图;
图4是本公开实施例中的服务器节点的机器资源的示意图;
图5是根据一示例性实施例示出的一种集群资源调度装置的框图;
图6是根据一示例性实施例示出的一种集群资源调度装置的框图;
图7是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种集群资源调度方法的流程图,集群包括调度中心服务器和服务器节点,该集群资源调度方法用于集群中的调度中心服务器中,如图1所示,该集群资源调度方法包括以下步骤。
在步骤S11中,接收集群内服务器节点发送的当前超配资源,所述当前超配资源是服务器节点基于当前运行的正常作业的已使用资源和可分配总资源确定的,所述正常作业为基于分配资源在运行的作业。
其中,每个作业在被配置时,配置该作业的用户可以同时按照作业的重要程度配置该作业对应的作业执行参数值,作业执行参数值规定了作业的执行顺序,重要程度较低的作业对应的作业执行参数值较低,且执行顺序越靠后。可以按照作业执行参数值从高到低的顺序,为作业执行参数值对应的作业分配资源。作业执行参数值例如可以是优先级值。正常作业一般为作业执行参数值较高的作业,正常作业基于申请资源配额申请资源并获得申请资源配额对应的分配资源,基于分配资源进行运行。所述资源可以包括内存和/或CPU。当前超配资源可以包括未分配资源和已分配但当前未被使用的资源。可分配总资源包括未分配资源、正常作业的已使用资源和已分配但当前未被使用的资源。
调度中心服务器按照作业执行参数值从高到低的顺序为作业分配资源,使得作业执行参数值较高的作业基于分配资源运行,从而这些作业作为正常作业。由于每个作业的申请资源一般较使用资源多,即在运行时作业的实际使用资源一般不会达到申请资源,从而可以将已分配但当前未被使用的资源作为超配资源,来运行其他的作业。即集群内的各个服务器节点基于自身当前运行的正常作业的已使用资源和服务器节点的可分配总资源,确定可以进行超配使用的资源,作为当前超配资源,并将当前超配资源发送至调度中心服务器,从而调度中心服务器接收到集群内服务器节点发送的当前超配资源。
在步骤S12中,将作业执行参数值低于所述正常作业的未运行作业调度到所述服务器节点的当前超配资源中,以使得所述服务器节点使用所述当前超配资源运行所述未运行作业,所述作业执行参数值为与作业对应的执行顺序的值。
调度中心服务器将集群内各个服务器节点的当前超配资源的加和,作为集群超配资源,并基于集群超配资源对作业执行参数值低于正常作业的未运行作业进行分配调度,即将这些未运行作业调度到各个服务器节点的当前超配资源中,使得服务器节点可以使用当前超配资源运行所述未运行作业,从而可以填补服务器节点的闲置资源。
所述未运行作业在使用当前超配资源运行后可以称为超配作业,因为超配作业的作业执行参数较低,所以当资源发生竞争时可以率先回收超配作业使用的超配资源,并降低因资源竞争带来的影响。
本示例性实施例提供的集群资源调度方法,可以进行离线与离线之间的超配,也可以进行离线与在线之间的超配,平均可以节约30%硬件资源,触发资源竞争并进行资源回收的比例不高于0.002%,可见,本示例性实施例提供的集群资源调度方法可以显著提高硬件资源利用率。
本实施例提供的集群资源调度方法,通过接收集群内服务器节点发送的当前超配资源,将作业执行参数值低于正常作业的未运行作业调度到服务器节点的当前超配资源中,使得服务器节点使用当前超配资源运行所述未运行作业,由于当前超配资源包括未分配资源和已分配但当前未被使用的资源,从而可以将正常作业的申请资源中未被使用的资源得以充分利用,来运行作业执行参数值较低的作业,解决了作业的申请值和使用值不同造成的资源浪费的问题,提升了集群内的资源利用率。
在上述技术方案的基础上,所述方法还可选包括:获取正常作业的历史资源使用数据;根据所述历史资源使用数据,确定正常作业的消耗资源随时间的周期性变化规律;根据所述周期性变化规律,周期性调整服务器节点的允许超配最大值。
因很多情况机器所消耗资源随时间呈周期性变化,所以可以对正常作业的历史资源使用数据进行学习,确定正常作业的消耗资源随时间的周期性变化规律,即绘制出正常作业的资源运行曲线,并根据周期性变化规律对允许超配最大值进行周期性调整,如在某个时间段正常作业的消耗资源较多,可以设置运行超配最大值较小,某个时间段正常作业的消耗资源较少,可以设置允许超配最大值较大,从而可以使得确定的超配资源更加平滑稳定。
图2是根据一示例性实施例示出的一种集群资源调度方法的流程图,集群包括调度中心服务器和服务器节点,该集群资源调度方法用于集群中的服务器节点中,如图2所示,该集群资源调度方法包括以下步骤。
在步骤S21中,获取当前运行的正常作业的已使用资源,所述正常作业为基于分配资源在运行的作业。
其中,每个作业在被配置时,配置该作业的用户可以同时按照作业的重要程度配置该作业对应的作业执行参数值,作业执行参数值规定了作业的执行顺序,重要程度较低的作业对应的作业执行参数值较低,且执行顺序越靠后。可以按照作业执行参数值从高到低的顺序,为作业执行参数值对应的作业分配资源。作业执行参数值例如可以是优先级值。正常作业基于申请资源配额申请资源并获得申请资源配额对应的分配资源,基于分配资源进行运行。所述资源可以包括内存和/或CPU。
服务器节点可以对自身当前运行的正常作业进行监控,获取所述正常作业的已使用资源。
服务器节点中可以设置一个代理模块,通过该代理模块来获取当前运行的正常作业的已使用资源,并确定当前超配资源,将当前超配资源发送至调度中心服务器。
在步骤S22中,根据所述已使用资源和可分配总资源,确定当前超配资源,所述当前超配资源包括未分配资源和已分配但当前未被使用的资源。
调度中心服务器优先为作业执行参数值较高的作业分配资源,使得这些作业基于分配资源运行,这些作业作为正常作业。由于每个作业的申请资源一般较使用资源多,即在运行时作业的实际使用资源一般不会达到申请资源的配额,从而可以将已分配但当前未被使用的资源作为超配资源,来运行其他的作业。即服务器节点可以基于自身当前运行的正常作业的已使用资源和可分配总资源,将可分配总资源与已使用资源之差,作为当前的闲置资源,基于闲置资源确定可以进行超配使用的资源,作为当前超配资源。其中,当前超配资源可以包括内存和/或CPU。
在步骤S23中,将所述当前超配资源发送给调度中心服务器,所述调度中心服务器用于将作业执行参数值低于所述正常作业的未运行作业调度到所述当前超配资源中,所述作业执行参数值为与作业对应的执行顺序的值。
在确定当前超配资源后,将当前超配资源发送至调度中心服务器,调度中心服务器可以将集群内各个服务器节点的当前超配资源的加和,作为集群超配资源,并基于集群超配资源对作业执行参数值低于正常作业的未运行作业进行分配调度,将这些未运行作业调度到各个服务器节点的当前超配资源中。
在步骤S24中,接收所述调度中心服务器分配来的未运行作业,将所述未运行作业作为超配作业,并使用所述当前超配资源运行所述超配作业。
服务器节点接收调度中心服务器分配来的未运行作业,将该未运行作业作为超配作业,并使用当前超配资源运行超配作业,从而可以填补服务器节点的闲置资源。
本示例性实施例提供的集群资源调度方法,通过获取当前运行的正常作业的已使用资源,根据已使用资源和可分配总资源确定当前超配资源,将当前超配资源发送给调度中心服务器,调度中心服务器将作业执行参数值低于正常作业的未运行作业调度中当前超配资源中,接收调度中心服务器分配来的未运行作业,将未运行作业作为超配作业,并使用当前超配资源运行超配作业,由于当前超配资源包括未分配资源和已分配但当前未被使用的资源,从而可以将正常作业的申请资源中未被使用的资源得以充分利用,来运行作业执行参数值较低的作业,解决了作业的申请值和使用值不同造成的资源浪费的问题,提升了集群内的资源利用率。
在上述技术方案的基础上,所述获取当前运行的正常作业的已使用资源,可选包括:获取正常作业的实际使用资源,并获取正常作业的申请资源配额;将所述申请资源配额的预设比例与所述实际使用资源中的最大值,作为正常作业的已使用资源。
考虑到新启动的正常作业还没有完全进入到工作模式,会在前3分钟进行资源保护,可以将申请资源配额的预设比例与实际使用资源中的最大值作为当前运行的正常作业的已使用资源,即若申请资源配额的预设比例大于实际使用资源,则将申请资源配额的预设比例作为正常作业的已使用资源,若申请资源配额的预设比例小于实际使用资源,则将实际使用资源作为正常作业的已使用资源,这样可以减少因正常作业未完全启动造成的频繁资源竞争。其中,预设比例例如可以为50%。
在上述技术方案的基础上,还可选包括:设置所述正常作业的内存溢出分数,作为第一分数,并设置基于当前超配资源运行的超配作业的内存溢出分数,作为第二分数,所述第二分数大于第一分数;若发生内存溢出,则根据所述第一分数和第二分数停止运行超配作业并释放所述超配作业占用的当前超配资源。
设置正常作业的内存溢出分数(oom_score)低于超配作业的内存溢出分数,从而在服务器节点发生内存溢出时,服务器节点的操作系统可以根据内存溢出分数,优先杀掉(kill)内存溢出分数高的超配作业,即停止运行该超配作业并释放该超配作业占用的当前超配资源,保障正常作业的稳定执行。例如,第一分数可以设置为100,第二分数可以设置为400。
图3是根据一示例性实施例示出的一种集群资源调度方法的流程图,集群包括调度中心服务器和服务器节点,该集群资源调度方法用于集群中的服务器节点中,如图3所示,该集群资源调度方法包括以下步骤。
在步骤S31中,获取当前运行的正常作业的已使用资源,所述正常作业为基于分配资源在运行的作业。
在步骤S32中,根据所述已使用资源和可分配总资源,确定超配系数。
超配系数是确定当前超配资源的一个参数,可以将已使用资源与可分配总资源的比例作为已使用比例,将1与已使用比例之差作为超配系数。
在一个示例性实施例中,所述可分配总资源还包括缓冲区;所述根据所述已使用资源和可分配总资源,确定超配系数,包括:若所述已使用资源不为0,则根据所述已使用资源、缓冲区和可分配总资源,确定超配系数;若所述已使用资源为0,则确定超配系数为预设超配系数。
其中,预设超配系数可以根据需求确定,一般可以小于50%,例如可以为30%。
图4是本公开实施例中的服务器节点的机器资源的示意图,如图4所示,服务器节点中的机器资源包括已分配资源、未分配资源和操作系统资源,已分配资源和未分配资源组成可分配总资源,已分配资源包括正常作业的已使用资源和缓冲区,已分配资源中当前未被使用的资源和未分配资源可以作为可超配资源,缓冲区可以为当前运行的正常作业提供缓冲,即若有突发资源请求而未进行资源避让时可以使用缓冲区来处理。在确定当前超配资源时基于已使用资源、缓冲区和可分配总资源进行确定,即根据可超配资源进行确定。
在服务器节点中有正常作业在运行时,即已使用资源不为0时,根据已使用资源、缓冲区和可分配总资源,确定超配系数,若已使用资源较多,则超配系数较小,若已使用资源较少,则超配系数较大。若已使用资源不为0,则确定超配系数为预设超配系数,预设超配系数较小,可以防止瞬间调度大量作业到同一服务器节点以触发资源竞争再进行回收,可以实现平滑加载超配作业。
其中,所述根据所述已使用资源、缓冲区和可分配总资源,确定超配系数,包括:确定所述已使用资源和缓冲区之和与所述可分配总资源的比例,并将1与所述比例之差作为所述超配系数。
已使用资源和缓冲区是不可以作为超配资源的资源,从而确定已使用资源和缓冲区之和与可分配总资源的比例,作为已使用比例,将1与已使用比例之差作为超配系数,从而可以保证在已使用资源较多时超配系数较小,在已使用资源较少时超配系数较大。
在步骤S33中,确定预设时间内回收历史超配资源的次数,并根据所述次数确定超配衰减系数。
其中,超配资源的回收是在发生资源竞争时进行的,即在正常作业有突发资源请求时,要回收超配作业使用的超配资源,保证正常作业的正常运行。
确定预设时间内回收历史超配资源的次数,并在所述次数多的时候,确定的超配衰减系数较大,从而可以通过超配衰减系数用来保障服务器节点的稳定性,可以使得对超配资源进行快回收、慢恢复。
在一个示例性实施例中,所述根据所述次数确定超配衰减系数,包括:根据所述次数,按照如下公式确定超配衰减系数:
其中,β为超配衰减系数,n为预设时间内回收历史超配资源的次数,t为上次回收历史超配资源到当前时间的时长,α1为第一系数,α2为第二系数,第一系数大于第二系数。
预设时间可以根据需求设置,例如可以为10分钟,t为上次回收历史超配资源到当前时间的时长,该时长以分钟计。
在上述超配衰减系数的公式中,通过min(1,n*α1)来约束对超配资源的回收,即在正常作业有突发资源请求时,对超配资源进行回收,通过(1-t*α2)来约束对超配资源的恢复,即在正常作业使用的已使用资源减少时,可以慢慢增加超配资源,而通过第一系数大于第二系数,例如α1为0.25,α2为0.05,可以实现超配资源的快回收、慢恢复,通过快回收,可以保证正常作业的运行,通过慢恢复,可以慢慢增加超配资源,以为正常作业预留资源,避免调度大量作业使用超配资源触发资源竞争。
在步骤S34中,根据所述超配系数、允许超配最大值和所述超配衰减系数,确定当前超配资源。
其中,允许超配最大值是预先设置的值,可以由调度中心服务器根据正常作业的消耗资源随时间的变化规律进行调整。所述变化规律可以通过机器学习模型基于正常作业的历史资源使用数据学习得到。
将所述超配系数、允许超配最大值和超配衰减系数的乘积,作为当前超配资源。
在步骤S35中,将所述当前超配资源发送给调度中心服务器,所述调度中心服务器用于将作业执行参数值低于所述正常作业的未运行作业调度到所述当前超配资源中。
在步骤S36中,接收所述调度中心服务器分配来的未运行作业,将所述未运行作业作为超配作业,并使用所述当前超配资源运行所述超配作业。
在步骤S37中,若接收到所述正常作业的突发资源请求,则使用所述缓冲区处理所述突发资源请求。
若使用当前超配资源运行超配作业后,接收到正常作业的突发资源请求,则优先使用缓冲区来处理正常作业的突发资源请求,降低正常作业的失败风险。
在步骤S38中,获取超配作业的运行时长,并按照所述运行时长从短到长的顺序,对所述超配作业进行排序。
在接收到正常作业的突发资源请求时,由于正常作业的作业执行参数值高于超配作业,所以要对正常作业进行资源避让,即需要回收超配作业使用的当前超配资源,在回收当前超配资源时,优先回收运行时长短的超配作业使用的当前超配资源,以降低资源回收造成的影响。因此,需要获取当前运行的超配作业的运行时长,并按照运行时长从短到长的顺序对超配作业进行排序。
在步骤S39中,根据超配作业的排序,依次回收超配作业使用的当前超配资源,直至回收的当前超配资源满足所述突发资源请求所请求的资源。
根据超配作业的排序,依次回收超配作业使用的当前超配资源,即优先回收运行时长较短的超配作业使用的当前超配资源,在回收的当前超配资源满足突发资源请求所请求的资源时停止回收。
当发生资源竞争时,会逐步回收超配资源直至服务器节点回收的超配资源满足突发资源请求所请求的资源,回收策略会根据超配作业的运行时长由短到长进行排序,优先回收执行时间较短的超配作业,这样影响会更小。在执行回收结束后会根据回收资源次数增加超配衰减系数,来降低服务器节点的可超配资源值,从而告知调度中心服务器当前服务器节点资源已经紧张,不要再次调度任务执行。
在步骤S310中,使用回收的当前超配资源处理突发资源请求,释放所述缓冲区。
在回收的当前超配资源满足突发资源请求所请求的资源时,使用回收的当前超配资源处理所述突发资源请求,释放缓冲区。
本示例性实施例提供的集群资源调度方法,通过根据已使用资源和可分配总资源,确定超配系数,确定预设时间内回收历史超配资源的次数,并根据所述次数确定超配衰减系数,根据超配系数、允许超配最大值和超配衰减系数确定当前超配资源,由超配系数和超配衰减系数来控制当前超配资源的配额,在已使用资源较多时,超配系数较小,从而当前超配资源的值较小,在已使用资源较少时,超配系数较大,从而当前超配资源的值较大,在预设时间内回收历史超配资源的次数较多时,超配衰减系数较小,从而使得当前超配资源的值较小,即在超配资源回收次数较多时,可以降低服务器节点的可超配资源值,保证服务器节点上的正常作业的运行。
图5是根据一示例性实施例示出的一种集群资源调度装置的框图,该装置应用于集群中的调度中心服务器中,参照图5,该装置包括超配资源接收模块51和超配资源调度模块52。
该超配资源接收模块51被配置为接收集群内服务器节点发送的当前超配资源,所述当前超配资源是服务器节点基于当前运行的正常作业的已使用资源和可分配总资源确定的,包括未分配资源和已分配但当前未被使用的资源,所述正常作业为基于分配资源在运行的作业;
该超配资源调度模块52被配置为将作业执行参数值低于所述正常作业的未运行作业调度到所述服务器节点的当前超配资源中,以使得所述服务器节点使用所述当前超配资源运行所述未运行作业,所述作业执行参数值为与作业对应的执行顺序的值。
可选的,所述集群资源调度装置还包括:
历史资源数据获取模块,被配置为获取正常作业的历史资源使用数据;
资源规律确定模块,被配置为根据所述历史资源使用数据,确定正常作业的消耗资源随时间的周期性变化规律;
允许超配值调整模块,被配置为根据所述周期性变化规律,周期性调整服务器节点的允许超配最大值。
本示例性实施例提供的集群资源调度装置,通过超配资源接收模块接收集群内服务器节点发送的当前超配资源,超配资源调度模块将作业执行参数值低于正常作业的未运行作业调度到服务器节点的当前超配资源中,使得服务器节点使用当前超配资源运行所述未运行作业,由于当前超配资源包括未分配资源和已分配但当前未被使用的资源,从而可以将正常作业的申请资源中未被使用的资源得以充分利用,来运行优先级较低的作业,解决了作业的申请值和使用值不同造成的资源浪费的问题,提升了集群内的资源利用率。
图6是根据一示例性实施例示出的一种集群资源调度装置的框图,该装置应用于集群中的服务器节点中,参照图6,该装置包括已使用资源获取模块61、超配资源确定模块62、超配资源发送模块63和超配作业运行模块64。
该已使用资源获取模块61被配置为获取当前运行的正常作业的已使用资源,所述正常作业为基于分配资源在运行的作业;
该超配资源确定模块62被配置为根据所述已使用资源和可分配总资源,确定当前超配资源,所述当前超配资源包括未分配资源和已分配但当前未被使用的资源;
该超配资源发送模块63被配置为将所述当前超配资源发送给调度中心服务器,所述调度中心服务器用于将作业执行参数值低于所述正常作业的未运行作业调度到所述当前超配资源中,所述作业执行参数值为与作业对应的执行顺序的值;
该超配作业运行模块64被配置为接收所述调度中心服务器分配来的未运行作业,将所述未运行作业作为超配作业,并使用所述当前超配资源运行所述超配作业。
可选的,所述超配资源确定模块包括:
超配系数确定单元,被配置为根据所述已使用资源和可分配总资源,确定超配系数;
超配衰减系数确定单元,被配置为确定预设时间内回收历史超配资源的次数,并根据所述次数确定超配衰减系数;
超配资源确定单元,被配置为根据所述超配系数、允许超配最大值和所述超配衰减系数,确定当前超配资源。
可选的,所述可分配总资源还包括缓冲区;
所述超配系数确定单元包括:
第一超配系数确定子单元,被配置为若所述已使用资源不为0,则根据所述已使用资源、缓冲区和可分配总资源,确定超配系数;
第二超配系数确定子单元,被配置为若所述已使用资源为0,则确定超配系数为预设超配系数。
可选的,所述第一超配系数确定子单元具体被配置为:
若所述已使用资源不为0,则确定所述已使用资源和缓冲区之和与所述可分配总资源的比例,并将1与所述比例之差作为所述超配系数。
可选的,所述集群资源调度装置还包括:
突发请求处理模块,被配置为若接收到所述正常作业的突发资源请求,则使用所述缓冲区处理所述突发资源请求。
可选的,所述集群资源调度装置还包括:
超配作业排序模块,被配置为获取超配作业的运行时长,并按照所述运行时长从短到长的顺序,对所述超配作业进行排序;
超配资源回收模块,被配置为根据超配作业的排序,依次回收超配作业使用的当前超配资源,直至回收的当前超配资源满足所述突发资源请求所请求的资源;
缓冲区释放模块,被配置为使用回收的当前超配资源处理突发资源请求,释放所述缓冲区。
可选的,所述超配衰减系数确定单元具体被配置为:
确定预设时间内回收历史超配资源的次数,并根据所述次数,按照如下公式确定超配衰减系数:
其中,β为超配衰减系数,n为预设时间内回收历史超配资源的次数,t为上次回收历史超配资源到当前时间的时长,α1为第一系数,α2为第二系数,第一系数大于第二系数。
可选的,所述已使用资源获取模块包括:
资源获取单元,被配置为获取正常作业的实际使用资源,并获取正常作业的申请资源配额;
已使用资源确定单元,被配置为将所述申请资源配额的预设比例与所述实际使用资源中的最大值,作为正常作业的已使用资源。
可选的,所述集群资源调度装置还包括:
内存溢出分数设置模块,被配置为设置所述正常作业的内存溢出分数,作为第一分数,并设置基于当前超配资源运行的超配作业的内存溢出分数,作为第二分数,所述第二分数大于第一分数;
内存溢出处理模块,被配置为若发生内存溢出,则根据所述第一分数和第二分数停止运行超配作业并释放所述超配作业占用的当前超配资源。
本示例性实施例提供的集群资源调度装置,通过已使用资源获取模块获取当前运行的正常作业的已使用资源,超配资源确定模块根据已使用资源和可分配总资源确定当前超配资源,超配资源发送模块将当前超配资源发送给调度中心服务器,调度中心服务器将作业执行参数值低于正常作业的未运行作业调度中当前超配资源中,超配作业运行模块接收调度中心服务器分配来的未运行作业,将未运行作业作为超配作业,并使用当前超配资源运行超配作业,由于当前超配资源包括未分配资源和已分配但当前未被使用的资源,从而可以将正常作业的申请资源中未被使用的资源得以充分利用,来运行作业执行参数值较低的作业,解决了作业的申请值和使用值不同造成的资源浪费的问题,提升了集群内的资源利用率。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种服务器的框图。参照图7,服务器700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行上述集群资源调度方法。
服务器700还可以包括一个电源组件726被配置为执行服务器700的电源管理,一个有线或无线网络接口750被配置为将服务器700连接到网络,和一个输入输出(I/O)接口758。服务器700可以操作基于存储在存储器732的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器732,上述指令可由服务器700的处理组件722执行以完成上述集群资源调度方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种集群资源调度方法,其特征在于,应用于集群中的调度中心服务器中,包括:
接收集群内服务器节点发送的当前超配资源,所述当前超配资源是服务器节点基于当前运行的正常作业的已使用资源和可分配总资源确定的,包括未分配资源和已分配但当前未被使用的资源,所述正常作业为基于分配资源在运行的作业;
将作业执行参数值低于所述正常作业的未运行作业调度到所述服务器节点的当前超配资源中,以使得所述服务器节点使用所述当前超配资源运行所述未运行作业,所述作业执行参数值为与作业对应的执行顺序的值。
2.根据权利要求1所述的集群资源调度方法,其特征在于,还包括:
获取正常作业的历史资源使用数据;
根据所述历史资源使用数据,确定正常作业的消耗资源随时间的周期性变化规律;
根据所述周期性变化规律,周期性调整服务器节点的允许超配最大值。
3.一种集群资源调度方法,其特征在于,应用于集群内服务器节点中,包括:
获取当前运行的正常作业的已使用资源,所述正常作业为基于分配资源在运行的作业;
根据所述已使用资源和可分配总资源,确定当前超配资源,所述当前超配资源包括未分配资源和已分配但当前未被使用的资源;
将所述当前超配资源发送给调度中心服务器,所述调度中心服务器用于将作业执行参数值低于所述正常作业的未运行作业调度到所述当前超配资源中,所述作业执行参数值为与作业对应的执行顺序的值;
接收所述调度中心服务器分配来的未运行作业,将所述未运行作业作为超配作业,并使用所述当前超配资源运行所述超配作业。
4.根据权利要求3所述的集群资源调度方法,其特征在于,所述根据所述已使用资源和可分配总资源,确定当前超配资源,包括:
根据所述已使用资源和可分配总资源,确定超配系数;
确定预设时间内回收历史超配资源的次数,并根据所述次数确定超配衰减系数;
根据所述超配系数、允许超配最大值和所述超配衰减系数,确定当前超配资源。
5.根据权利要求4所述的集群资源调度方法,其特征在于,所述可分配总资源还包括缓冲区;
所述根据所述已使用资源和可分配总资源,确定超配系数,包括:
若所述已使用资源不为0,则根据所述已使用资源、缓冲区和可分配总资源,确定超配系数;
若所述已使用资源为0,则确定超配系数为预设超配系数。
6.根据权利要求5所述的集群资源调度方法,其特征在于,所述根据所述已使用资源、缓冲区和可分配总资源,确定超配系数,包括:
确定所述已使用资源和缓冲区之和与所述可分配总资源的比例,并将1与所述比例之差作为所述超配系数。
7.一种集群资源调度装置,其特征在于,应用于集群中的调度中心服务器中,包括:
超配资源接收模块,被配置为接收集群内服务器节点发送的当前超配资源,所述当前超配资源是服务器节点基于当前运行的正常作业的已使用资源和可分配总资源确定的,包括未分配资源和已分配但当前未被使用的资源,所述正常作业为基于分配资源在运行的作业;
超配资源调度模块,被配置为将作业执行参数值低于所述正常作业的未运行作业调度到所述服务器节点的当前超配资源中,以使得所述服务器节点使用所述当前超配资源运行所述未运行作业,所述作业执行参数值为与作业对应的执行顺序的值。
8.一种集群资源调度装置,其特征在于,应用于集群内服务器节点中,包括:
已使用资源获取模块,被配置为获取当前运行的正常作业的已使用资源,所述正常作业为基于分配资源在运行的作业;
超配资源确定模块,被配置为根据所述已使用资源和可分配总资源,确定当前超配资源,所述当前超配资源包括未分配资源和已分配但当前未被使用的资源;
超配资源发送模块,被配置为将所述当前超配资源发送给调度中心服务器,所述调度中心服务器用于将作业执行参数值低于所述正常作业的未运行作业调度到所述当前超配资源中,所述作业执行参数值为与作业对应的执行顺序的值;
超配作业运行模块,被配置为接收所述调度中心服务器分配来的未运行作业,将所述未运行作业作为超配作业,并使用所述当前超配资源运行所述超配作业。
9.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1或2所述的集群资源调度方法或权利要求3至6中任一项所述的集群资源调度方法。
10.一种存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如权利要求1或2所述的集群资源调度方法或权利要求3至6中任一项所述的集群资源调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010555863.0A CN113806063A (zh) | 2020-06-17 | 2020-06-17 | 集群资源调度方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010555863.0A CN113806063A (zh) | 2020-06-17 | 2020-06-17 | 集群资源调度方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113806063A true CN113806063A (zh) | 2021-12-17 |
Family
ID=78892748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010555863.0A Pending CN113806063A (zh) | 2020-06-17 | 2020-06-17 | 集群资源调度方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806063A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487930A (zh) * | 2015-12-01 | 2016-04-13 | 中国电子科技集团公司第二十八研究所 | 一种基于Hadoop的任务优化调度方法 |
US20180074855A1 (en) * | 2016-09-14 | 2018-03-15 | Cloudera, Inc. | Utilization-aware resource scheduling in a distributed computing cluster |
CN108073453A (zh) * | 2016-11-11 | 2018-05-25 | 阿里巴巴集团控股有限公司 | 分布式集群中cpu资源的调度方法以及装置 |
CN109408229A (zh) * | 2018-09-30 | 2019-03-01 | 华为技术有限公司 | 一种调度方法及装置 |
-
2020
- 2020-06-17 CN CN202010555863.0A patent/CN113806063A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487930A (zh) * | 2015-12-01 | 2016-04-13 | 中国电子科技集团公司第二十八研究所 | 一种基于Hadoop的任务优化调度方法 |
US20180074855A1 (en) * | 2016-09-14 | 2018-03-15 | Cloudera, Inc. | Utilization-aware resource scheduling in a distributed computing cluster |
CN108073453A (zh) * | 2016-11-11 | 2018-05-25 | 阿里巴巴集团控股有限公司 | 分布式集群中cpu资源的调度方法以及装置 |
CN109408229A (zh) * | 2018-09-30 | 2019-03-01 | 华为技术有限公司 | 一种调度方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9218213B2 (en) | Dynamic placement of heterogeneous workloads | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
CN107851039A (zh) | 用于资源管理的系统和方法 | |
CN109962856B (zh) | 资源分配方法、装置以及计算机可读存储介质 | |
CN111399986A (zh) | Pod资源配额配置方法及装置 | |
CN110825520A (zh) | 一种实现资源高效利用的集群极速弹性伸缩方法 | |
CN105718316A (zh) | 一种作业调度的方法及装置 | |
CN113867959A (zh) | 一种训练任务资源调度方法、装置、设备及介质 | |
CN103179048A (zh) | 云数据中心的主机QoS策略变换方法及系统 | |
CN112783659A (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
CN113032102B (zh) | 资源重调度方法、装置、设备和介质 | |
CN112486642B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
JPH10289115A (ja) | プロセッサ・リソース管理方法 | |
CN115617497B (zh) | 线程处理方法、调度组件、监测组件、服务器和存储介质 | |
CN107203256B (zh) | 一种网络功能虚拟化场景下的节能分配方法与装置 | |
CN114500661A (zh) | 一种限流设备、方法、装置及存储介质 | |
CN109739634A (zh) | 一种原子任务执行方法及装置 | |
US20080022287A1 (en) | Method And System For Transferring Budgets In A Technique For Restrained Budget Use | |
WO2013006233A1 (en) | Resource allocation prioritization based on knowledge of user intent and process independence | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
Yang et al. | Elastic executor provisioning for iterative workloads on apache spark | |
CN113806063A (zh) | 集群资源调度方法、装置、服务器及存储介质 | |
CN115712487A (zh) | 资源的调度方法及装置 | |
CN113434256B (zh) | 一种云资源横向扩展方法、可读存储介质 | |
CN114706663A (zh) | 一种计算资源调度方法、介质及计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |