CN108073453B - 分布式集群中cpu资源的调度方法以及装置 - Google Patents
分布式集群中cpu资源的调度方法以及装置 Download PDFInfo
- Publication number
- CN108073453B CN108073453B CN201610992661.6A CN201610992661A CN108073453B CN 108073453 B CN108073453 B CN 108073453B CN 201610992661 A CN201610992661 A CN 201610992661A CN 108073453 B CN108073453 B CN 108073453B
- Authority
- CN
- China
- Prior art keywords
- cpu
- cpu resource
- state
- resource
- reserved
- 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.)
- Active
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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Abstract
本申请公开一种分布式集群中CPU资源的调度方法,包括:接收到任务调度端发送的用户作业后,检查当前服务器节点上CPU资源的状态;根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,若是,跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断;若否,将所述CPU资源分配给所述用户作业,并判断所述用户作业的CPU资源是否已分配完成,若是,结束所述用户作业的CPU资源分配;若否,返回执行所述检查当前服务器节点上CPU资源的状态步骤。所述方法基于所述CPU资源的状态针对用户作业进行CPU资源的分配,实现更加灵活;同时,在服务器节点上实现CPU资源的分配降低了CPU资源调度的复杂度。
Description
技术领域
本申请涉及分布式集群领域,具体涉及一种分布式集群中CPU资源的调度方法。本申请同时涉及一种分布式集群中CPU资源的调度装置,以及一种电子设备。
背景技术
在分布式集群中,CPU、内存、磁盘和网络是几种最常见的集群资源,用户提交作业时,通常会指明需要的资源的种类和数量,调度系统根据其需要的资源的种类和数量将用户作业调度到资源可以满足的机器上运行。调度系统主要包括两种组件:集群资源管理器,例如YARN(Yet Another Resource Negotiator,另一种资源协调者)中的ResourceManager(资源管理器);以及单机资源管理器,例如YARN中的Node Manager(节点管理器)。其中,集群资源管理器负责集群中所有资源的统一管理和分配,单机资源管理器负责单一节点上的所有资源的管理与分配。
通常的分布式集群中,由集群资源管理器收集单机资源管理器上报的资源数量,并呈现给用户,当用户作业从集群资源管理器处申请获得可用的资源后,单机资源管理器负责启动用户作业进程,并将用户作业进程与分配给用户作业进程的资源做关联。目前,常用的用户作业进程与分配给用户作业进程的资源关联方式,是针对用户作业进程设置了最小的CPU占用的比例,通过限制各个用户作业进程可分配到的CPU时间片,从而来限制用户作业进程使用CPU的程度。
目前调度系统在进行分布式集群中CPU资源的调度时,通常会将一台机器上的全部CPU资源均作为可调度的CPU资源,但是,在实际分布式环境的应用场景当中,总会有一部分CPU资源用作其他非用户作业的用途,比如将一部分CPU资源预留出来用作I/O的中断处理,CPU资源调度的灵活性较差。
发明内容
本申请提供一种分布式集群中CPU资源的调度方法,以解决现有技术存在的灵活性差的问题。
本申请同时涉及一种分布式集群中CPU资源的调度装置,以及一种电子设备。
本申请提供一种分布式集群中CPU资源的调度方法,包括:
接收到任务调度端发送的用户作业后,检查当前服务器节点上CPU资源的状态;
根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,若是,跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断;若否,执行下一步;
将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成,若是,结束所述用户作业的CPU资源分配;若否,返回执行所述检查当前服务器节点上CPU资源的状态步骤。
可选的,所述检查当前服务器节点上CPU资源的状态,采用如下方式实现:
遍历所述服务器节点上的CPU资源,并在遍历过程中检查所述CPU资源的状态标识。
可选的,所述状态标识包括:
未分配状态和已分配状态;或者,未分配状态、已分配状态和预留状态。
可选的,若所述状态标识包括所述未分配状态和所述已分配状态,相应的,所述根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,采用如下方式实现:
判断所述CPU资源的状态标识是否为所述已分配状态,若是,执行所述跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断步骤;
若否,在预先存储的预留CPU资源集中查找所述CPU资源,如果在所述预留CPU资源集中查找到所述CPU资源,执行所述跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断步骤;
如果在预留CPU资源集中未查找所述CPU资源,执行所述将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成步骤。
可选的,若所述状态标识包括所述未分配状态、所述已分配状态和所述预留状态,相应的,所述根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一采用如下方式实现:
判断所述CPU资源的状态标识是否为所述已分配状态和所述预留状态二者中其一,若是,执行所述跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断步骤;
若否,执行所述将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成步骤。
可选的,所述CPU资源的预留状态,通过调用预先设置的预留状态配置接口进行配置。
可选的,所述检查当前服务器节点上CPU资源的状态步骤执行后,且所述根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一步骤执行前,执行如下步骤:
判断所述服务器节点上的CPU资源是否全部遍历,若是,发出调度失败的提醒消息;
若否,执行所述根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一步骤。
可选的,所述分布式集群中CPU资源的调度方法,包括:
通过预先设置的预留状态配置接口接收待预留CPU资源;
利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源。
可选的,所述利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源步骤执行之后,执行如下步骤:
计算所述服务器节点上可用CPU资源的数目,并向集群资源管理端发送所述可用CPU资源的数目;
其中,所述可用CPU资源,等于所述服务器节点上的所有CPU资源减去状态标识为所述已分配状态的CPU资源,以及所述预留CPU资源集中的CPU资源。
可选的,所述利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源步骤执行之后,执行如下步骤:
遍历所述服务器节点上的CPU资源,并且每遍历一个CPU资源,针对已遍历的CPU资源,执行如下步骤:
判断所述CPU资源在所述预留CPU资源集是否存在,若是,将所述CPU资源上的用户作业记录到重启作业列表中;
若否,返回执行所述遍历所述服务器节点上CPU资源步骤。
可选的,所述判断所述CPU资源在所述预留CPU资源集是否存在步骤执行前,执行如下步骤:
判断所述服务器节点上的CPU资源是否全部遍历完成,若是,重启所述重启作业列表中记录的用户作业;
若否,执行所述判断所述CPU资源在所述预留CPU资源集是否存在步骤。
可选的,所述重启所述重启作业列表中记录的用户作业,采用如下方式实现:
根据所述重启作业列表中用户作业预先配置的重启属性标签,判断所述用户作业是否可执行重启,若是,重启所述用户作业,释放所述用户作业占用的CPU资源;
若否,针对所述用户作业不执行重启。
可选的,所述释放所述用户作业占用的CPU资源,通过调用预先设置的资源释放接口实现。
可选的,所述分布式集群中CPU资源的调度方法,包括:
当检测到所述服务器节点上预先设置的CPU资源管理模块执行重启之后,读取预先存储的预留CPU资源集;
获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源;
其中,所述CPU资源管理模块用于管理所述服务器节点上的CPU资源和用户作业,以及二者之间的对应关系。
可选的,所述获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源步骤执行后,执行如下步骤:
计算所述服务器节点上可用CPU资源的数目,并向集群资源管理端发送所述可用CPU资源的数目;
其中,所述可用CPU资源,等于所述服务器节点上的所有CPU资源减去状态标识为所述已分配状态的CPU资源,以及所述预留CPU资源集中的CPU资源。
可选的,所述获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源步骤执行后,执行如下步骤:
遍历所述服务器节点上的CPU资源,并且每遍历一个CPU资源,针对已遍历的CPU资源,执行如下步骤:
判断所述CPU资源在所述预留CPU资源集是否存在,若是,将所述CPU资源上的用户作业记录到重启作业列表中;
若否,返回执行所述遍历所述服务器节点上CPU资源步骤。
可选的,所述判断所述CPU资源在所述预留CPU资源集是否存在步骤执行前,执行如下步骤:
判断所述服务器节点上的CPU资源是否全部遍历完成,若是,重启所述重启作业列表中记录的用户作业;
若否,执行所述判断所述CPU资源在所述预留CPU资源集是否存在步骤。
可选的,所述重启所述重启作业列表中记录的用户作业,采用如下方式实现:
根据所述重启作业列表中用户作业预先配置的重启属性标签,判断所述用户作业是否可执行重启,若是,重启所述用户作业,释放所述用户作业占用的CPU资源;
若否,针对所述用户作业不执行重启。
可选的,所述释放所述用户作业占用的CPU资源,基于调用预先设置的资源释放接口实现。
本申请另外提供一种分布式集群中CPU资源的调度装置,包括:
CPU资源状态检查单元,用于接收到任务调度端发送的用户作业后,检查当前服务器节点上CPU资源的状态;
CPU资源状态判断单元,用于根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,若是,运行继续检查判断单元;若否,运行CPU资源分配及判断单元;
所述继续检查判断单元,用于跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断;
所述CPU资源分配及判断单元,用于将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成,若是,运行结束分配单元;若否,运行所述CPU资源状态检查单元;
所述结束分配单元,用于结束所述用户作业的CPU资源分配。
本申请还提供一种电子设备,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收到任务调度端发送的用户作业后,检查当前服务器节点上CPU资源的状态;
根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,若是,跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断;
若否,将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成,若是,结束所述用户作业的CPU资源分配;若否,返回执行所述检查当前服务器节点上CPU资源的状态指令。
本申请提供的分布式集群中CPU资源的调度方法,包括:接收到任务调度端发送的用户作业后,检查当前服务器节点上CPU资源的状态;根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,若是,跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断;若否,执行下一步;将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成,若是,结束所述用户作业的CPU资源分配;若否,返回执行所述检查当前服务器节点上CPU资源的状态步骤。
本申请提供的所述分布式集群中CPU资源的调度方法,在接收到任务调度端发送的用户作业后,根据检查获得的当前服务器节点上CPU资源的状态,来判断所述CPU资源是否为已分配状态和预留状态二者中其一,如果所述CPU资源为已分配状态和预留状态二者中其一,所述CPU资源无法分配给所述用户作业,则跳过所述CPU资源,并且对所述服务器节点上尚未判断的CPU资源继续进行检查判断;如果所述CPU资源不是已分配状态和预留状态二者当中的任意一者,则将所述CPU资源分配给所述用户作业,并重复上述分配过程,在所述服务器节点上为所述用户作业分配足够的CPU资源。所述分布式集群中CPU资源的调度方法,通过所述CPU资源的状态来区分能否被分配给所述任务调度端发送的用户作业,并且在为所述用户作业分配CPU资源的过程中可跳过状态为所述已分配状态和所述预留状态的CPU资源,实现更加灵活;同时,在服务器节点上针对所述任务调度端发送的用户作业进行CPU资源的分配,降低了CPU资源调度的复杂度。
附图说明
附图1是本申请提供的一种分布式集群中CPU资源的调度方法实施例的处理流程图;
附图2是本申请提供的一种分布式集群的示意图;
附图3是本申请提供的一种CPU资源管理模块的示意图;
附图4是本申请提供的一种预留CPU资源配置操作实现方式的处理流程图;
附图5是本申请提供的一种重启配置操作实现方式的处理流程图;
附图6是本申请提供的一种分布式集群中CPU资源的调度装置实施例的示意图;
附图7是本申请提供的一种电子设备实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种分布式集群中CPU资源的调度方法,本申请还提供一种分布式集群中CPU资源的调度装置,以及一种电子设备。以下分别结合本申请提供的实施例的附图逐一进行详细说明,并且对方法的各个步骤进行说明。
本申请提供的一种分布式集群中CPU资源的调度方法实施例如下:
参照附图1,其示出了本申请提供的一种分布式集群中CPU资源的调度方法实施例的处理流程图;参照附图2,其示出了本申请提供的一种分布式集群的示意图;参照附图3,其示出了本申请提供的一种CPU资源管理模块的示意图;参照附图4,其示出了本申请提供的一种预留CPU资源配置操作实现方式的处理流程图;参照附图5,其示出了本申请提供的一种重启配置操作实现方式的处理流程图。此外,所述分布式集群中CPU资源的调度方法实施例的各个步骤之间的关系,请根据附图1确定。
步骤S101,接收到任务调度端发送的用户作业后,检查当前服务器节点上CPU资源的状态。
在分布式集群中,通常包含有任务调度端、集群资源管理端和节点资源管理端,其中,所述节点资源管理端将其管理的服务器节点可用的资源发送给所述集群资源管理端,在进行CPU资源调度时,由所述任务调度端针对用户作业向所述集群资源管理端申请相应的CPU资源,通过任务调度协议将用户作业发送到相应的节点资源管理端,所述节点资源管理端接收到用户作业之后,在自身管理的服务器节点上选择CPU资源分配给用户作业,使用户作业在分配的CPU上运行。如附图2所述的分布式集群,其中包含任务调度端、集群资源管理端和多个节点资源管理端,各节点资源管理端分别将各自管理的服务器上的CPU核的数目上报至集群资源管理端,任务调度端针对用户作业向集群资源管理端申请相应CPU核,并通过任务调度协议将用户作业发送到对应的一个或者多个节点资源管理端,节点资源管理端接收到用户作业之后,在其自身管理的服务器上选择CPU核分配给用户作业,并在分配的CPU核上运行用户作业。
本申请所述分布式集群中CPU资源的调度方法,基于所述分布式集群中的节点资源管理端实现,针对分布式集群中任意一个服务器节点对应的节点资源管理端,均可采用所述分布式集群中CPU资源的调度方法针对接收到的所述任务管理端发送的所述用户作业分配CPU资源。
在具体实施时,为了实现同一个服务器节点上CPU资源的集中调度,还可以在所述节点资源管理端内设置CPU资源管理模块,用于管理维护当前服务器节点上的所有CPU资源。
所述CPU资源管理模块设置有所述CPU资源的状态标识位,并且是基于所述CPU资源管理模块管理的每一个CPU资源设置一个对应的状态标识位,通过所述状态标识位来标识所述CPU资源当前的状态。本实施例中,所述CPU资源的状态标识包括:未分配状态和已分配状态;所述CPU资源的未分配状态是指当前CPU资源尚未被分配给用户作业,所述CPU资源的已分配状态是指当前CPU资源已被分配给用户作业。
如附图3所示的CPUCoreManager(CPU资源管理模块),CPUCoreManager用于管理维护一台服务器上所有CPU核的CPU集合,并且针对CPU集合中的每一个CPU核都设置有一个状态位(Status),来记录当前CPU核的状态标识是未分配状态或者已分配状态,如果是已分配状态,则在AssignedTasks中记录所有分配在当前CPU核上的用户作业。
所述CPU资源管理模块中存储有预留CPU资源集,所述预留CPU资源集中的CPU资源用于预留出来分配给非用户作业的一些特殊作业,比如预留出来用作I/O的中断处理。此外,所述CPU资源管理模块对外提供下述数据接口:总CPU资源获取接口,用于获取除预留的CPU资源之外的所有CPU资源的数目;可用CPU资源获取接口,用于获取当前可分配给用户作业的所有CPU资源的数目;CPU资源分配接口,用于给用户作业分配所需数目的CPU资源;资源释放接口,用于释放用户作业当前正在使用的CPU资源;预留状态配置接口,用于将CPU资源配置为预留CPU资源。如附图3所示的CPUCoreManager中的ReservedCPUCores(预留CPU资源集);此外,CPUCoreManager还提供GetTotalCPUResources接口(总CPU资源获取接口)、GetFreeCPUResources(可用CPU资源获取接口)、AssignCPU(CPU资源分配接口)、ReleaseCPU(资源释放接口)和ReserveCPU(预留状态配置接口)。
本步骤中,当接收到任务调度端发送的用户作业后,检查当前服务器节点上CPU资源的状态,如上所述,所述CPU资源设置有状态标识,基于此,所述检查当前服务器节点上CPU资源的状态,采用如下方式实现:遍历所述服务器节点上的CPU资源,并在遍历过程中检查所述CPU资源的状态标识。
在具体实施时,在接收到所述用户作业之后,还可以针对所述用户作业分配一个初始值为空的CPU集合,在此之后,检查当前服务器节点上CPU资源的状态。
在具体实施时,在本步骤执行之后,检查到所述节点资源管理端管理的服务器节点上CPU资源的状态之后,并且在下述步骤S102根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一之前,还可以执行遍历判断操作,来判断所述节点资源管理端管理的服务器节点上CPU资源是否全部遍历完成,即:每遍历一个CPU资源,检查到该CPU资源的状态之后,且判断该CPU资源是否为已分配状态和预留状态二者中其一之前,执行所述遍历判断操作,具体实现如下:判断所述服务器节点上的CPU资源是否全部遍历;若是,表明在所述服务器节点上无法针对所述用户作业分配足够的CPU资源,则发出调度失败的提醒消息,比如在遍历完所述服务器节点上所有CPU资源后,在所述服务器节点上未能发现满足所述用户作业的CPU资源,则将分配给所述用户作业的CPU资源归还为未分配状态,并将所述用户作业标记分配失败的用户作业;若否,表明所述服务器节点上还有CPU资源尚未遍历,执行下述步骤S102,根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一。
步骤S102,根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一。
如上所述,所述状态标识包括未分配状态和已分配状态,根据上述步骤S101在遍历过程中检查所述CPU资源的状态,本步骤中,根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,具体采用如下方式实现:
1)判断所述CPU资源的状态标识是否为所述已分配状态;
若是,执行下述步骤S103,跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断;
若否,执行下一步;
2)在预先存储的预留CPU资源集中查找所述CPU资源;
如果在所述预留CPU资源集中查找到所述CPU资源,执行下述步骤S103,跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断;
如果在预留CPU资源集中未查找所述CPU资源,执行下述步骤S104,将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成。
如上所述,所述CPU资源管理模块设置有所述CPU资源的状态标识位,通过所述状态标识位来标识所述CPU资源当前的状态,所述CPU资源的状态标识包括未分配状态和已分配状态,以及,所述CPU资源管理模块中存储有预留CPU资源集。除此之外,还可以将所述CPU资源的状态标识设置为未分配状态、已分配状态和预留状态,同时,将所述预留CPU资源集中CPU资源对应的预留状态记录在所述状态标识位中,具体实现时可调用所述CPU资源管理模块对外提供的所述预留状态配置接口来配置所述预留CPU资源集中CPU资源的预留状态,而不是在所述CPU资源管理模块中存储所述预留CPU资源集中的CPU资源;在此基础上,本步骤根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,可采用如下方式实现:
判断所述CPU资源的状态标识是否为所述已分配状态和所述预留状态二者中其一;
若是,执行下述步骤S103,跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断;
若否,执行下述步骤S104,将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成。
步骤S103,跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断。
本步骤得以实施的前提是上述步骤S102判断所述CPU资源是否为已分配状态和预留状态二者中其一的判断结果为是,表明当前判断的所述CPU资源已经被分配给相应的用户作业,无法再将当前判断的所述CPU资源分配给所述任务调度端发送的所述用户作业;或者,当前判断的所述CPU资源是用作其他非用户作业的用途的预留CPU资源,比如将当前判断的所述CPU资源预留出来用作I/O的中断处理,同样无法将当前判断的所述CPU资源分配给所述任务调度端发送的所述用户作业,在此基础上执行本步骤,跳过当前判断的所述CPU资源,并针对所述服务器节点上尚未判断的CPU资源继续进行上述步骤S102所述的检查判断,比如获取所述服务器节点上的下一个CPU资源执行上述步骤S102进行检查判断。
步骤S104,将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成。
本步骤得以实施的前提是上述步骤S102判断所述CPU资源是否为已分配状态和预留状态二者中其一的判断结果为否,即当前判断的所述CPU资源既没有被分配给相应的用户作业,同时,当前判断的所述CPU资源也不是用作其他非用户作业的用途的预留CPU资源,比如将当前判断的所述CPU资源预留出来用作I/O的中断处理,在此基础上执行本步骤,将所述CPU资源分配给所述用户作业;此外,所述任务管理端在向所述节点资源管理端发送所述用户作业的时候,会同时发送所述用户作业需要分配的CPU资源的数目,比如,用户作业需要绑定到几个CPU核上,基于此,在所述CPU资源分配后判断所述用户作业的CPU资源是否已分配完成;若所述用户作业的CPU资源分配完成,则执行下述步骤S105,结束所述用户作业的CPU资源分配;若所述用户作业的CPU资源尚未分配完成,则返回执行上述步骤S101中检查当前服务器节点上CPU资源的状态步骤,在当前服务器节点上继续为所述用户作业分配CPU资源。
步骤S105,结束所述用户作业的CPU资源分配。
本步骤得以实施的前提是上述步骤S104中判断所述用户作业的CPU资源是否已分配完成的判断结果为是,表明所述用户作业的CPU资源全部分配完成,则结束当前所述用户作业的CPU资源分配。
在具体实施时,在上述步骤S101-步骤S105执行之前、执行之后或者执行的过程中,还可以执行预留CPU资源配置操作,通过调用所述CPU资源管理模块对外提供的所述预留状态配置接口,来配置所述CPU资源管理模块当中的预留CPU资源集中包含的CPU资源,所述预留CPU资源配置操作具体实现如下:
通过所述预留状态配置接口接收待预留CPU资源;
利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源。
此外,在所述预留CPU资源配置操作中,在上述利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源步骤执行之后,还可以执行如下步骤:计算所述服务器节点上可用CPU资源的数目,并向集群资源管理端发送所述可用CPU资源的数目;其中,所述可用CPU资源,等于所述服务器节点上的所有CPU资源减去状态标识为所述已分配状态的CPU资源,以及所述预留CPU资源集中的CPU资源。
优选的,在所述预留CPU资源配置操作中,上述利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源步骤执行之后,还可以执行如下步骤:遍历所述服务器节点上的CPU资源,并且每遍历一个CPU资源,针对已遍历的CPU资源,执行如下步骤:
判断所述CPU资源在所述预留CPU资源集是否存在;若是,表明当前判断的所述CPU资源是用作其他非用户作业的用途的预留CPU资源,其上不应该运行所述用户作业,将所述CPU资源上的用户作业记录到重启作业列表中;若否,表明当前判断的所述CPU资源不是预留CPU资源,则返回执行所述遍历所述服务器节点上CPU资源步骤,继续遍历所述服务器节点上尚未遍历CPU资源。
此外,上述遍历所述服务器节点上的CPU资源的过程中,每遍历一个CPU资源,针对已遍历的CPU资源,在执行上述判断所述CPU资源在所述预留CPU资源集是否存在步骤执行前,还可以执行如下步骤:
判断所述服务器节点上的CPU资源是否全部遍历完成;若所述服务器节点上的CPU资源全部遍历完成,则重启所述重启作业列表中记录的用户作业;若所述服务器节点上的CPU资源尚未全部遍历完成,执行所述判断所述CPU资源在所述预留CPU资源集是否存在步骤。此处,所述重启所述重启作业列表中记录的用户作业,具体根据所述重启作业列表中用户作业预先配置的重启属性标签,判断所述用户作业是否可执行重启,若是,重启所述用户作业,释放所述用户作业占用的CPU资源;若否,针对所述用户作业不执行重启。其中,所述释放所述用户作业占用的CPU资源,通过调用所述CPU资源管理模块对外提供的所述资源释放接口实现。
例如,附图4所示的所述预留CPU资源配置操作的实现方式,所述预留CPU资源配置操作包括:
步骤S401,通过所述预留状态配置接口接收待预留CPU资源;
步骤S402,利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源;
步骤S403,计算所述服务器节点上可用CPU资源的数目,并向集群资源管理端发送所述可用CPU资源的数目;
步骤S404,遍历所述服务器节点上的CPU资源;
步骤S405,判断所述服务器节点上的CPU资源是否全部遍历完成,若是,执行下述步骤S408;若否,执行下述步骤S406。
步骤S406,判断所述CPU资源在所述预留CPU资源集是否存在,若是,执行下述步骤S407;若否,返回执行上述步骤S404,遍历所述服务器节点上的CPU资源。
步骤S407,将所述CPU资源上的用户作业记录到重启作业列表中;
步骤S408,重启所述重启作业列表中记录的用户作业。
在实际应用中,可以采用多种具体的实现方式,实现所述预留CPU资源配置操作。实现所述预留CPU资源配置操作的各种形式的变化,都只是具体实现方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
此外,在具体实施时,在上述步骤S101-步骤S105执行之前、执行之后或者执行的过程中,还可以执行重启配置操作,在所述CPU资源管理模块发生故障重启或者正常重启操作后,来配置所述CPU资源管理模块管理的服务器节点上的CPU资源和所述CPU资源上运行的用户作业,所述重启配置操作具体实现如下:
当检测到所述服务器节点上设置的所述CPU资源管理模块执行重启之后,读取预先存储的预留CPU资源集;
获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源。
其中,所述CPU资源管理模块用于管理所述服务器节点上的CPU资源和用户作业,以及二者之间的对应关系,比如CPU资源和用户作业的绑定关系。
此外,在所述重启配置操作中,在上述获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源步骤执行之后,还可以执行如下步骤:计算所述服务器节点上可用CPU资源的数目,并向集群资源管理端发送所述可用CPU资源的数目;其中,所述可用CPU资源,等于所述服务器节点上的所有CPU资源减去状态标识为所述已分配状态的CPU资源,以及所述预留CPU资源集中的CPU资源。
优选的,在所述重启配置操作中,上述获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源步骤执行之后,还可以执行如下步骤:遍历所述服务器节点上的CPU资源,并且每遍历一个CPU资源,针对已遍历的CPU资源,执行如下步骤:
判断所述CPU资源在所述预留CPU资源集是否存在;若是,表明当前判断的所述CPU资源是用作其他非用户作业的用途的预留CPU资源,其上不应该运行所述用户作业,将所述CPU资源上的用户作业记录到重启作业列表中;若否,表明当前判断的所述CPU资源不是预留CPU资源,则返回执行所述遍历所述服务器节点上CPU资源步骤,继续遍历所述服务器节点上尚未遍历CPU资源。
此外,上述遍历所述服务器节点上的CPU资源的过程中,每遍历一个CPU资源,针对已遍历的CPU资源,在执行上述判断所述CPU资源在所述预留CPU资源集是否存在步骤执行前,还可以执行如下步骤:
判断所述服务器节点上的CPU资源是否全部遍历完成;若所述服务器节点上的CPU资源全部遍历完成,则重启所述重启作业列表中记录的用户作业;若所述服务器节点上的CPU资源尚未全部遍历完成,执行所述判断所述CPU资源在所述预留CPU资源集是否存在步骤。此处,所述重启所述重启作业列表中记录的用户作业,具体根据所述重启作业列表中用户作业预先配置的重启属性标签,判断所述用户作业是否可执行重启,若是,重启所述用户作业,释放所述用户作业占用的CPU资源;若否,针对所述用户作业不执行重启。其中,所述释放所述用户作业占用的CPU资源,通过调用所述CPU资源管理模块对外提供的所述资源释放接口实现。
例如,附图5所示的所述重启配置操作的实现方式,所述重启配置操作包括:
步骤S501,当检测到所述服务器节点上设置的所述CPU资源管理模块执行重启之后,读取预先存储的预留CPU资源集;
步骤S502,获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源;
步骤S503,计算所述服务器节点上可用CPU资源的数目,并向集群资源管理端发送所述可用CPU资源的数目;
步骤S504,遍历所述服务器节点上的CPU资源;
步骤S505,判断所述服务器节点上的CPU资源是否全部遍历完成,若是,执行下述步骤S508;若否,执行下述步骤S506。
步骤S506,判断所述CPU资源在所述预留CPU资源集是否存在,若是,执行下述步骤S507;若否,返回执行上述步骤S504,遍历所述服务器节点上的CPU资源。
步骤S507,将所述CPU资源上的用户作业记录到重启作业列表中;
步骤S508,重启所述重启作业列表中记录的用户作业。
在实际应用中,可以采用多种具体的实现方式,实现所述重启配置操作。实现所述重启配置操作的各种形式的变化,都只是具体实现方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
综上所述,本申请提供的所述分布式集群中CPU资源的调度方法,在接收到任务调度端发送的用户作业后,根据检查获得的当前服务器节点上CPU资源的状态,来判断所述CPU资源是否为已分配状态和预留状态二者中其一,如果所述CPU资源为已分配状态和预留状态二者中其一,所述CPU资源无法分配给所述用户作业,则跳过所述CPU资源,并且对所述服务器节点上尚未判断的CPU资源继续进行检查判断;如果所述CPU资源不是已分配状态和预留状态二者当中的任意一者,则将所述CPU资源分配给所述用户作业,并重复上述分配过程,在所述服务器节点上为所述用户作业分配足够的CPU资源。所述分布式集群中CPU资源的调度方法,通过所述CPU资源的状态来区分能否被分配给所述任务调度端发送的用户作业,并且在为所述用户作业分配CPU资源的过程中可跳过状态为所述已分配状态和所述预留状态的CPU资源,实现更加灵活;同时,在服务器节点上针对所述任务调度端发送的用户作业进行CPU资源的分配,降低了CPU资源调度的复杂度。
本申请提供的一种分布式集群中CPU资源的调度装置实施例如下:
在上述的实施例中,提供了一种分布式集群中CPU资源的调度方法,与之相对应的,本申请还提供了一种分布式集群中CPU资源的调度装置,下面结合附图进行说明。
参照附图6,其示出了本申请提供的一种分布式集群中CPU资源的调度装置实施例的示意图。
由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供一种分布式集群中CPU资源的调度装置,包括:
CPU资源状态检查单元601,用于接收到任务调度端发送的用户作业后,检查当前服务器节点上CPU资源的状态;
CPU资源状态判断单元602,用于根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,若是,运行继续检查判断单元603;若否,运行CPU资源分配及判断单元604;
所述继续检查判断单元603,用于跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断;
所述CPU资源分配及判断单元604,用于将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成,若是,运行结束分配单元605;若否,运行所述CPU资源状态检查单元601;
所述结束分配单元605,用于结束所述用户作业的CPU资源分配。
可选的,所述CPU资源状态检查单元601,包括:
CPU资源遍历子单元,用于遍历所述服务器节点上的CPU资源,并在遍历过程中检查所述CPU资源的状态标识。
可选的,所述状态标识包括:
未分配状态和已分配状态;或者,未分配状态、已分配状态和预留状态。
可选的,若所述状态标识包括所述未分配状态和所述已分配状态,相应的,所述CPU资源状态判断单元602,包括:
已分配状态判断子单元,用于判断所述CPU资源的状态标识是否为所述已分配状态,若是,运行所述继续检查判断单元603;若否,运行CPU资源查找子单元;
所述CPU资源查找子单元,用于在预先存储的预留CPU资源集中查找所述CPU资源,如果在所述预留CPU资源集中查找到所述CPU资源,运行所述继续检查判断单元603;如果在预留CPU资源集中未查找所述CPU资源,运行所述CPU资源分配及判断单元604。
可选的,若所述状态标识包括所述未分配状态、所述已分配状态和所述预留状态,相应的,所述CPU资源状态判断单元602,包括:
状态标识判断子单元,用于判断所述CPU资源的状态标识是否为所述已分配状态和所述预留状态二者中其一,若是,运行所述继续检查判断单元603;若否,运行所述CPU资源分配及判断单元604。
可选的,所述CPU资源的预留状态,通过调用预先设置的预留状态配置接口进行配置。
可选的,所述分布式集群中CPU资源的调度装置,包括:
遍历判断单元,用于判断所述服务器节点上的CPU资源是否全部遍历,若是,运行调度失败提醒单元;若否,运行所述CPU资源状态判断单元602;
所述调度失败提醒单元,用于发出调度失败的提醒消息。
可选的,所述分布式集群中CPU资源的调度装置,包括:
待预留CPU资源接收单元,用于通过预先设置的预留状态配置接口接收待预留CPU资源;
待预留CPU资源更新单元,用于利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源。
可选的,所述分布式集群中CPU资源的调度装置,包括:
第一可用CPU资源计算发送单元,用于计算所述服务器节点上可用CPU资源的数目,并向集群资源管理端发送所述可用CPU资源的数目;
其中,所述可用CPU资源,等于所述服务器节点上的所有CPU资源减去状态标识为所述已分配状态的CPU资源,以及所述预留CPU资源集中的CPU资源。
可选的,所述分布式集群中CPU资源的调度装置,包括:
第一CPU资源遍历单元,用于遍历所述服务器节点上的CPU资源,并且每遍历一个CPU资源,针对已遍历的CPU资源运行第一CPU资源判断单元;
所述第一CPU资源判断单元,用于判断所述CPU资源在所述预留CPU资源集是否存在,若是,运行第一重启作业列表记录单元;若否,运行所述第一CPU资源遍历单元;
所述第一重启作业列表记录单元,用于将所述CPU资源上的用户作业记录到重启作业列表中。
可选的,所述分布式集群中CPU资源的调度装置,包括:
第一遍历判断单元,用于判断所述服务器节点上的CPU资源是否全部遍历完成,若是,运行第一用户作业重启单元;若否,运行所述第一CPU资源判断单元;
所述第一用户作业重启单元,用于重启所述重启作业列表中记录的用户作业。
可选的,所述第一用户作业重启单元,具体用于根据所述重启作业列表中用户作业预先配置的重启属性标签,判断所述用户作业是否可执行重启,若是,重启所述用户作业,释放所述用户作业占用的CPU资源;若否,针对所述用户作业不执行重启。
可选的,所述释放所述用户作业占用的CPU资源,通过调用预先设置的资源释放接口实现。
可选的,所述分布式集群中CPU资源的调度装置,包括:
预留CPU资源集读取单元,用于当检测到所述服务器节点上预先设置的CPU资源管理模块执行重启之后,读取预先存储的预留CPU资源集;
用户作业获取恢复单元,用于获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源;
其中,所述CPU资源管理模块用于管理所述服务器节点上的CPU资源和用户作业,以及二者之间的对应关系。
可选的,所述分布式集群中CPU资源的调度装置,包括:
第二可用CPU资源计算发送单元,用于计算所述服务器节点上可用CPU资源的数目,并向集群资源管理端发送所述可用CPU资源的数目;
其中,所述可用CPU资源,等于所述服务器节点上的所有CPU资源减去状态标识为所述已分配状态的CPU资源,以及所述预留CPU资源集中的CPU资源。
可选的,所述分布式集群中CPU资源的调度装置,包括:
第二CPU资源遍历单元,用于遍历所述服务器节点上的CPU资源,并且每遍历一个CPU资源,针对已遍历的CPU资源运行第二CPU资源判断单元;
所述第二CPU资源判断单元,用于判断所述CPU资源在所述预留CPU资源集是否存在,若是,运行第二重启作业列表记录单元;若否,运行所述第二CPU资源遍历单元;
所述第二重启作业列表记录单元,用将所述CPU资源上的用户作业记录到重启作业列表中。
可选的,所述分布式集群中CPU资源的调度装置,包括:
第二遍历判断单元,用于判断所述服务器节点上的CPU资源是否全部遍历完成,若是,运行第二用户作业重启单元;若否,运行所述第二CPU资源判断单元;
所述第二用户作业重启单元,用于重启所述重启作业列表中记录的用户作业。
可选的,所述第二用户作业重启单元,具体用于根据所述重启作业列表中用户作业预先配置的重启属性标签,判断所述用户作业是否可执行重启,若是,重启所述用户作业,释放所述用户作业占用的CPU资源;若否,针对所述用户作业不执行重启。
可选的,所述释放所述用户作业占用的CPU资源,基于调用预先设置的资源释放接口实现。
本申请提供的一种电子设备实施例如下:
在上述的实施例中,提供了一种分布式集群中CPU资源的调度方法,此外,本申请还提供了一种用于实现所述分布式集群中CPU资源的调度方法的电子设备,下面结合附图进行说明。
参照附图7,其示出了本实施例提供的一种电子设备的示意图。
本申请提供的所述电子设备实施例描述得比较简单,相关的部分请参见上述提供的所述分布式集群中CPU资源的调度方法实施例的对应说明即可。下述描述的实施例仅仅是示意性的。
本申请提供一种电子设备,包括:
存储器701,以及处理器702;
所述存储器701用于存储计算机可执行指令,所述处理器702用于执行所述计算机可执行指令:
接收到任务调度端发送的用户作业后,检查当前服务器节点上CPU资源的状态;
根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,若是,跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断;
若否,将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成,若是,结束所述用户作业的CPU资源分配;若否,返回执行所述检查当前服务器节点上CPU资源的状态指令。
可选的,检查当前服务器节点上CPU资源的状态,采用如下方式实现:
遍历所述服务器节点上的CPU资源,并在遍历过程中检查所述CPU资源的状态标识。
可选的,所述状态标识包括:
未分配状态和已分配状态;或者,未分配状态、已分配状态和预留状态。
可选的,若所述状态标识包括所述未分配状态和所述已分配状态,相应的,所述根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,采用如下方式实现:
判断所述CPU资源的状态标识是否为所述已分配状态,若是,执行所述跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断指令;
若否,在预先存储的预留CPU资源集中查找所述CPU资源,如果在所述预留CPU资源集中查找到所述CPU资源,执行所述跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断指令;如果在预留CPU资源集中未查找所述CPU资源,执行所述将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成指令。
可选的,若所述状态标识包括所述未分配状态、所述已分配状态和所述预留状态,相应的,所述根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,采用如下方式实现:
判断所述CPU资源的状态标识是否为所述已分配状态和所述预留状态二者中其一,若是,执行所述跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断指令;若否,执行所述将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成指令。
可选的,所述CPU资源的预留状态,通过调用预先设置的预留状态配置接口进行配置。
可选的,所述检查当前服务器节点上CPU资源的状态指令执行后,且所述根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一指令执行前,所述处理器702还用于执行下述计算机可执行指令:
判断所述服务器节点上的CPU资源是否全部遍历,若是,发出调度失败的提醒消息;若否,执行所述根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一指令。
可选的,所述处理器702还用于执行下述计算机可执行指令:
通过预先设置的预留状态配置接口接收待预留CPU资源;
利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源。
可选的,所述利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源指令执行之后,所述处理器702还用于执行下述计算机可执行指令:
计算所述服务器节点上可用CPU资源的数目,并向集群资源管理端发送所述可用CPU资源的数目;
其中,所述可用CPU资源,等于所述服务器节点上的所有CPU资源减去状态标识为所述已分配状态的CPU资源,以及所述预留CPU资源集中的CPU资源。
可选的,所述利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源指令执行之后,所述处理器702还用于执行下述计算机可执行指令:
遍历所述服务器节点上的CPU资源,并且每遍历一个CPU资源,针对已遍历的CPU资源,执行如下指令:
判断所述CPU资源在所述预留CPU资源集是否存在,若是,将所述CPU资源上的用户作业记录到重启作业列表中;若否,返回执行所述遍历所述服务器节点上CPU资源指令。
可选的,所述判断所述CPU资源在所述预留CPU资源集是否存在指令执行前,所述处理器702还用于执行下述计算机可执行指令:
判断所述服务器节点上的CPU资源是否全部遍历完成,若是,重启所述重启作业列表中记录的用户作业;若否,执行所述判断所述CPU资源在所述预留CPU资源集是否存在指令。
可选的,所述重启所述重启作业列表中记录的用户作业,采用如下方式实现:
根据所述重启作业列表中用户作业预先配置的重启属性标签,判断所述用户作业是否可执行重启,若是,重启所述用户作业,释放所述用户作业占用的CPU资源;若否,针对所述用户作业不执行重启。
可选的,所述释放所述用户作业占用的CPU资源,通过调用预先设置的资源释放接口实现。
可选的,所述处理器702还用于执行下述计算机可执行指令:
当检测到所述服务器节点上预先设置的CPU资源管理模块执行重启之后,读取预先存储的预留CPU资源集;
获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源;
其中,所述CPU资源管理模块用于管理所述服务器节点上的CPU资源和用户作业,以及二者之间的对应关系。
可选的,所述获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源指令执行后,所述处理器702还用于执行下述计算机可执行指令:
计算所述服务器节点上可用CPU资源的数目,并向集群资源管理端发送所述可用CPU资源的数目;
其中,所述可用CPU资源,等于所述服务器节点上的所有CPU资源减去状态标识为所述已分配状态的CPU资源,以及所述预留CPU资源集中的CPU资源。
可选的,所述获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源指令执行后,所述处理器702还用于执行下述计算机可执行指令:
遍历所述服务器节点上的CPU资源,并且每遍历一个CPU资源,针对已遍历的CPU资源,执行如下指令:
判断所述CPU资源在所述预留CPU资源集是否存在,若是,将所述CPU资源上的用户作业记录到重启作业列表中;若否,返回执行所述遍历所述服务器节点上CPU资源指令。
可选的,所述判断所述CPU资源在所述预留CPU资源集是否存在指令执行前,所述处理器702还用于执行下述计算机可执行指令:
判断所述服务器节点上的CPU资源是否全部遍历完成,若是,重启所述重启作业列表中记录的用户作业;若否,执行所述判断所述CPU资源在所述预留CPU资源集是否存在指令。
可选的,所述重启所述重启作业列表中记录的用户作业,采用如下方式实现:
根据所述重启作业列表中用户作业预先配置的重启属性标签,判断所述用户作业是否可执行重启,若是,重启所述用户作业,释放所述用户作业占用的CPU资源;若否,针对所述用户作业不执行重启。
可选的,所述释放所述用户作业占用的CPU资源,基于调用预先设置的资源释放接口实现。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (21)
1.一种分布式集群中CPU资源的调度方法,其特征在于,包括:
接收到任务调度端发送的用户作业后,检查当前服务器节点上CPU资源的状态;
根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,若是,跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断;若否,执行下一步;
将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成,若是,结束所述用户作业的CPU资源分配;若否,返回执行所述检查当前服务器节点上CPU资源的状态步骤。
2.根据权利要求1所述的分布式集群中CPU资源的调度方法,其特征在于,所述检查当前服务器节点上CPU资源的状态,采用如下方式实现:
遍历所述服务器节点上的CPU资源,并在遍历过程中检查所述CPU资源的状态标识。
3.根据权利要求2所述的分布式集群中CPU资源的调度方法,其特征在于,所述状态标识包括:
未分配状态和已分配状态;或者,未分配状态、已分配状态和预留状态。
4.根据权利要求3所述的分布式集群中CPU资源的调度方法,其特征在于,若所述状态标识包括所述未分配状态和所述已分配状态,相应的,所述根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,采用如下方式实现:
判断所述CPU资源的状态标识是否为所述已分配状态,若是,执行所述跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断步骤;
若否,在预先存储的预留CPU资源集中查找所述CPU资源,如果在所述预留CPU资源集中查找到所述CPU资源,执行所述跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断步骤;
如果在预留CPU资源集中未查找所述CPU资源,执行所述将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成步骤。
5.根据权利要求3所述的分布式集群中CPU资源的调度方法,其特征在于,若所述状态标识包括所述未分配状态、所述已分配状态和所述预留状态,相应的,所述根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,采用如下方式实现:
判断所述CPU资源的状态标识是否为所述已分配状态和所述预留状态二者中其一,若是,执行所述跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断步骤;
若否,执行所述将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成步骤。
6.根据权利要求3所述的分布式集群中CPU资源的调度方法,其特征在于,所述CPU资源的预留状态,通过调用预先设置的预留状态配置接口进行配置。
7.根据权利要求2所述的分布式集群中CPU资源的调度方法,其特征在于,所述检查当前服务器节点上CPU资源的状态步骤执行后,且所述根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一步骤执行前,执行如下步骤:
判断所述服务器节点上的CPU资源是否全部遍历,若是,发出调度失败的提醒消息;
若否,执行所述根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一步骤。
8.根据权利要求4所述的分布式集群中CPU资源的调度方法,其特征在于,包括:
通过预先设置的预留状态配置接口接收待预留CPU资源;
利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源。
9.根据权利要求8所述的分布式集群中CPU资源的调度方法,其特征在于,所述利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源步骤执行之后,执行如下步骤:
计算所述服务器节点上可用CPU资源的数目,并向集群资源管理端发送所述可用CPU资源的数目;
其中,所述可用CPU资源,等于所述服务器节点上的所有CPU资源减去状态标识为所述已分配状态的CPU资源,以及所述预留CPU资源集中的CPU资源。
10.根据权利要求8所述的分布式集群中CPU资源的调度方法,其特征在于,所述利用所述待预留CPU资源更新所述预留CPU资源集中的CPU资源步骤执行之后,执行如下步骤:
遍历所述服务器节点上的CPU资源,并且每遍历一个CPU资源,针对已遍历的CPU资源,执行如下步骤:
判断所述CPU资源在所述预留CPU资源集是否存在,若是,将所述CPU资源上的用户作业记录到重启作业列表中;
若否,返回执行所述遍历所述服务器节点上CPU资源步骤。
11.根据权利要求10所述的分布式集群中CPU资源的调度方法,其特征在于,所述判断所述CPU资源在所述预留CPU资源集是否存在步骤执行前,执行如下步骤:
判断所述服务器节点上的CPU资源是否全部遍历完成,若是,重启所述重启作业列表中记录的用户作业;
若否,执行所述判断所述CPU资源在所述预留CPU资源集是否存在步骤。
12.根据权利要求11所述的分布式集群中CPU资源的调度方法,其特征在于,所述重启所述重启作业列表中记录的用户作业,采用如下方式实现:
根据所述重启作业列表中用户作业预先配置的重启属性标签,判断所述用户作业是否可执行重启,若是,重启所述用户作业,释放所述用户作业占用的CPU资源;
若否,针对所述用户作业不执行重启。
13.根据权利要求12所述的分布式集群中CPU资源的调度方法,其特征在于,所述释放所述用户作业占用的CPU资源,通过调用预先设置的资源释放接口实现。
14.根据权利要求4所述的分布式集群中CPU资源的调度方法,其特征在于,包括:
当检测到所述服务器节点上预先设置的CPU资源管理模块执行重启之后,读取预先存储的预留CPU资源集;
获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源;
其中,所述CPU资源管理模块用于管理所述服务器节点上的CPU资源和用户作业,以及二者之间的对应关系。
15.根据权利要求14所述的分布式集群中CPU资源的调度方法,其特征在于,所述获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源步骤执行后,执行如下步骤:
计算所述服务器节点上可用CPU资源的数目,并向集群资源管理端发送所述可用CPU资源的数目;
其中,所述可用CPU资源,等于所述服务器节点上的所有CPU资源减去状态标识为所述已分配状态的CPU资源,以及所述预留CPU资源集中的CPU资源。
16.根据权利要求14所述的分布式集群中CPU资源的调度方法,其特征在于,所述获取重启前所述服务器节点上的用户作业,并恢复所述用户作业在所述服务器节点上占用的CPU资源步骤执行后,执行如下步骤:
遍历所述服务器节点上的CPU资源,并且每遍历一个CPU资源,针对已遍历的CPU资源,执行如下步骤:
判断所述CPU资源在所述预留CPU资源集是否存在,若是,将所述CPU资源上的用户作业记录到重启作业列表中;
若否,返回执行所述遍历所述服务器节点上CPU资源步骤。
17.根据权利要求16所述的分布式集群中CPU资源的调度方法,其特征在于,所述判断所述CPU资源在所述预留CPU资源集是否存在步骤执行前,执行如下步骤:
判断所述服务器节点上的CPU资源是否全部遍历完成,若是,重启所述重启作业列表中记录的用户作业;
若否,执行所述判断所述CPU资源在所述预留CPU资源集是否存在步骤。
18.根据权利要求17所述的分布式集群中CPU资源的调度方法,其特征在于,所述重启所述重启作业列表中记录的用户作业,采用如下方式实现:
根据所述重启作业列表中用户作业预先配置的重启属性标签,判断所述用户作业是否可执行重启,若是,重启所述用户作业,释放所述用户作业占用的CPU资源;
若否,针对所述用户作业不执行重启。
19.根据权利要求18所述的分布式集群中CPU资源的调度方法,其特征在于,所述释放所述用户作业占用的CPU资源,基于调用预先设置的资源释放接口实现。
20.一种分布式集群中CPU资源的调度装置,其特征在于,包括:
CPU资源状态检查单元,用于接收到任务调度端发送的用户作业后,检查当前服务器节点上CPU资源的状态;
CPU资源状态判断单元,用于根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,若是,运行继续检查判断单元;若否,运行CPU资源分配及判断单元;
所述继续检查判断单元,用于跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断;
所述CPU资源分配及判断单元,用于将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成,若是,运行结束分配单元;若否,运行所述CPU资源状态检查单元;
所述结束分配单元,用于结束所述用户作业的CPU资源分配。
21.一种电子设备,其特征在于,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收到任务调度端发送的用户作业后,检查当前服务器节点上CPU资源的状态;
根据所述CPU资源的状态判断所述CPU资源是否为已分配状态和预留状态二者中其一,若是,跳过所述CPU资源,获取所述服务器节点上的下一个CPU资源进行检查判断;
若否,将所述CPU资源分配给所述用户作业,并在分配后判断所述用户作业的CPU资源是否已分配完成,若是,结束所述用户作业的CPU资源分配;若否,返回执行所述检查当前服务器节点上CPU资源的状态指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610992661.6A CN108073453B (zh) | 2016-11-11 | 2016-11-11 | 分布式集群中cpu资源的调度方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610992661.6A CN108073453B (zh) | 2016-11-11 | 2016-11-11 | 分布式集群中cpu资源的调度方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108073453A CN108073453A (zh) | 2018-05-25 |
CN108073453B true CN108073453B (zh) | 2022-05-10 |
Family
ID=62154631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610992661.6A Active CN108073453B (zh) | 2016-11-11 | 2016-11-11 | 分布式集群中cpu资源的调度方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108073453B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806063A (zh) * | 2020-06-17 | 2021-12-17 | 北京达佳互联信息技术有限公司 | 集群资源调度方法、装置、服务器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007041899A1 (fr) * | 2005-10-10 | 2007-04-19 | Zte Corporation | Système et procédé de gestion de la ressource distribuée adaptable dynamique |
CN102360314A (zh) * | 2011-10-28 | 2012-02-22 | 中国科学院计算技术研究所 | 一种数据中心资源管理系统和方法 |
CN103207814A (zh) * | 2012-12-27 | 2013-07-17 | 北京仿真中心 | 一种去中心化的跨集群资源管理与任务调度系统与调度方法 |
CN104572306A (zh) * | 2015-01-28 | 2015-04-29 | 中国石油集团川庆钻探工程有限公司地球物理勘探公司 | 计算机集群的资源管理方法、资源管理器 |
CN105468458A (zh) * | 2015-11-26 | 2016-04-06 | 北京航空航天大学 | 计算机集群的资源调度方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246550A (zh) * | 2012-02-09 | 2013-08-14 | 深圳市腾讯计算机系统有限公司 | 一种基于容量的多任务调度方法及系统 |
CN103365726B (zh) * | 2013-07-08 | 2016-05-25 | 华中科技大学 | 一种面向gpu集群的资源管理方法和系统 |
JP6364880B2 (ja) * | 2014-03-31 | 2018-08-01 | 富士通株式会社 | 並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法 |
-
2016
- 2016-11-11 CN CN201610992661.6A patent/CN108073453B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007041899A1 (fr) * | 2005-10-10 | 2007-04-19 | Zte Corporation | Système et procédé de gestion de la ressource distribuée adaptable dynamique |
CN102360314A (zh) * | 2011-10-28 | 2012-02-22 | 中国科学院计算技术研究所 | 一种数据中心资源管理系统和方法 |
CN103207814A (zh) * | 2012-12-27 | 2013-07-17 | 北京仿真中心 | 一种去中心化的跨集群资源管理与任务调度系统与调度方法 |
CN104572306A (zh) * | 2015-01-28 | 2015-04-29 | 中国石油集团川庆钻探工程有限公司地球物理勘探公司 | 计算机集群的资源管理方法、资源管理器 |
CN105468458A (zh) * | 2015-11-26 | 2016-04-06 | 北京航空航天大学 | 计算机集群的资源调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108073453A (zh) | 2018-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109471727B (zh) | 一种任务处理方法、装置及系统 | |
CN106406983B (zh) | 一种集群中的任务调度方法及装置 | |
US11586673B2 (en) | Data writing and reading method and apparatus, and cloud storage system | |
CN106293893B (zh) | 作业调度方法、装置及分布式系统 | |
WO2018002991A1 (ja) | 制御装置、vnf配置先選択方法及びプログラム | |
CN113687941A (zh) | 一种基于优先级的资源分配方法、装置和设备 | |
CN107168777B (zh) | 分布式系统中资源的调度方法以及装置 | |
CN110661647A (zh) | 一种生命周期管理方法及装置 | |
CN108845877B (zh) | 管理内存的方法、装置和系统 | |
CN113037794B (zh) | 计算资源配置调度方法、装置及系统 | |
CN106708608B (zh) | 一种分布式锁服务方法、获取方法及相应装置 | |
WO2023045467A1 (zh) | 容器cpu资源调度与隔离方法和装置、存储介质及电子设备 | |
JP2007249674A (ja) | サーバシステム | |
CN111399764B (zh) | 数据存储方法、读取方法、装置、设备及存储介质 | |
CN111722928A (zh) | 一种资源调度方法、装置、电子设备及存储介质 | |
CN112214313A (zh) | 内存分配方法及相关设备 | |
CN113886069A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
CN108241535B (zh) | 资源管理的方法、装置及服务器设备 | |
CN113849260A (zh) | 一种实例的处理核分配方法及装置 | |
CN111464331A (zh) | 一种线程创建的控制方法、系统及终端设备 | |
CN108073453B (zh) | 分布式集群中cpu资源的调度方法以及装置 | |
CN111562952B (zh) | 双芯智能电表管理单元的动态装载方法、动态装载装置 | |
CN104700255B (zh) | 多进程处理方法、装置和系统 | |
CN110968406B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |