CN110275777B - 一种资源调度*** - Google Patents
一种资源调度*** Download PDFInfo
- Publication number
- CN110275777B CN110275777B CN201910496359.5A CN201910496359A CN110275777B CN 110275777 B CN110275777 B CN 110275777B CN 201910496359 A CN201910496359 A CN 201910496359A CN 110275777 B CN110275777 B CN 110275777B
- Authority
- CN
- China
- Prior art keywords
- resource
- slave
- resources
- additional
- task
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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
-
- 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)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种资源调度***,所述***包括主机和从机;所述主机,用于确定所述从机的空闲资源,根据所述空闲资源生成资源分配指令,并向所述从机发送所述资源分配指令;所述从机,用于接收所述资源分配指令,并根据所述资源分配指令,确定预分配资源;所述预分配资源用于执行所述从机中的任务;所述从机,还用于获取在执行所述从机中的任务时的实际消耗资源,当所述实际消耗资源大于所述预分配资源,则向所述主机申请释放剩余资源;所述剩余资源,为所述预分配资源超出所述实际消耗资源的资源;当所述实际消耗资源小于所述预分配资源,则向所述主机申请额外资源;所述额外资源,为所述实际消耗资源超出所述预分配资源的资源。采用本***可以提升资源利用率。
Description
技术领域
本申请涉及资源分配领域,特别是涉及一种资源调度***。
背景技术
随着科技的发展,分布式处理是现代科学技术必不可少的过程,例如天气预测就需要对大量的气象数据进行分布式处理,将气象数据分布在分布式集群的各个计算机中,让各个计算机同时处理对应的气象数据,以保证气象数据的及时处理,从而能够准确、快速地确定未来空气变化。
目前,现有对分布式计算机***资源的管理,一般是采用Mesos等开源软件来进行,按照预先设定的规则,设定资源分配比例来实现对资源的配置。但是,这种通过设定资源分配比例的方式并不灵活,一旦按照资源分配比例来进行资源分配后,很难再根据实际运行需求进行更改,容易导致资源碎片化,从而造成资源利用率不高。
因此,现有的资源调度方法存在资源利用率不高的问题。
发明内容
基于此,有必要针对以上问题,提供一种能够提升资源利用率的资源调度***。
一种资源调度***,所述***包括:主机和从机;
所述主机,用于确定所述从机的空闲资源,根据所述空闲资源生成资源分配指令,并向所述从机发送所述资源分配指令;
所述从机,用于接收所述资源分配指令,并根据所述资源分配指令,确定预分配资源;所述预分配资源用于执行所述从机中的任务;
所述从机,还用于获取在执行所述从机中的任务时的实际消耗资源,当所述实际消耗资源大于所述预分配资源,则向所述主机申请释放剩余资源;所述剩余资源,为所述预分配资源超出所述实际消耗资源的资源;当所述实际消耗资源小于所述预分配资源,则向所述主机申请额外资源;所述额外资源,为所述实际消耗资源超出所述预分配资源的资源。
在其中一个实施例中,所述主机,还用于在接收到额外资源申请后,确定所述从机是否存在未分配资源,若存在未分配资源,则向所述从机发送携带额外资源信息的第一资源增加指令,指使所述从机从所述未分配资源中分配额外资源至所述从机中的任务;所述额外资源信息,为描述额外资源大小的信息。
在其中一个实施例中,所述从机,还用于接收所述第一资源增加指令,并从所述第一资源增加指令中提取所述额外资源信息,根据所述额外资源信息,从所述未分配资源中分配所述额外资源至所述从机中的任务;当所述额外资源小于所述未分配资源,则从所述未分配资源中分配所述额外资源至所述任务。
在其中一个实施例中,所述主机,还用于确定所述从机是否存在未分配资源,若所述从机不存在未分配资源,则向所述从机发送携带额外资源信息的第二资源增加指令,指使所述从机从所述剩余资源中分配额外资源至所述任务。
在其中一个实施例中,所述从机,还用于确定其他任务有剩余资源,并从所述第二资源增加指令中提取额外资源信息,根据所述额外资源信息,从所述剩余资源中分配所述额外资源至所述任务;当所述额外资源小于所述剩余资源,则从所述剩余资源中分配所述额外资源至所述任务。
在其中一个实施例中,所述从机还用于,当所述额外资源大于所述剩余资源时,持续监控所述其他任务的资源剩余情况,若在规定时间内,所述剩余资源小于所述额外资源,则结束监控,资源调度失败。
在其中一个实施例中,所述从机还用于对所述任务进行监控,当所述任务发出资源不足报警和/或进入重试状态时,所述从机向所述主机提出额外资源申请。
在其中一个实施例中,所述主机,还用于接受所述额外资源申请,并生成从机资源查看指令,查看所述从机资源分配情况,根据所述从机资源分配情况,发送第一资源增加命令。
在其中一个实施例中,所述从机,还用于获取所述任务的进程/线程,并查看所述进程/线程的ID信息,根据所述进程/线程的ID信息查看所述进程/线程运行时实际消耗资源。
在其中一个实施例中,所述资源为CPU、内存中的至少一种。
上述一种资源调度***中,通过主机向从机发送资源分配指令,从机根据资源分配从空闲资源中分配预分配资源,用以执行任务,并根据预分配资源和任务执行时实际消耗资源,向主机提出额外资源申请或剩余资源释放,使任务执行时的消耗资源可以根据实际需求实时变动,及时地将剩余资源进行再分配,实现了资源碎片再利用,从而提高了资源利用率,进而解决了现有资源调度方法存在资源利用率不高的问题。
附图说明
图1是一个实施例的一种资源调度***的结构框图;
图2是一个实施例的一种资源调度***的流程图;
图3是一个实施例的另一种资源调度***的流程图;
图4是一个实施例的一种资源调度***的具体结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的一种资源调度***100,如图1所示,在一个实施例中,资源调度***100可以包括从机110和主机120。其中,从机110可以有多个。从机110可以用于执行多个任务。从机110和主机120可以用独立的服务器来实现。
主机120,用于确定从机110的空闲资源,根据空闲资源生成资源分配指令,并向从机110发送所述资源分配指令。
其中,空闲资源可以是从机110中没有被使用的、能够被分配用于执行任务的资源。资源可以具体是CPU、内存。
其中,资源分配指令是指挥机器将资源进行分配的指示和命令。
具体实现中,主机120向从机110发送资源查询指令,查询从机110的空闲资源,从机110接收到资源查询指令后,将空闲资源信息返回至主机120,并存储于文件***中;主机聚合计算所有从机的空闲资源,根据空闲资源,向从机110发送资源分配指令。
例如,首先可以在每个从机110上部署数据采集器,用于采集从机110的资源使用数据,如CPU大小、CPU利用率、内存大小、内存利用率等。主机120向从机110发送资源查询指令,从机110接收到资源查询指令后,将数据采集器中的资源使用数据发送至主机120,主机120通过聚合计算资源使用数据,得到所有从机110的空闲资源,将空闲资源信息存入资源列表中,并向注册到主机120的计算框架发出携带空闲资源信息的资源邀约。计算机框架指外部计算机框架,如Hadoop、Spark,计算机框架中的任务在从机110中运行。计算机框架向主机120发送资源邀约回复。资源邀约回复包括需要在从机上运行的任务数量和每个任务需要的资源。主机120根据空闲资源和资源邀约回复,依据DRF算法(Dominant ResourceFairness,主导资源公平算法)生成资源分配指令。
更具体的,主机120收集从机110有4CPU、4GB RAM的空闲资源,主机120调用分配模块,向计算机框架1发送一个描述从机110当前空闲资源的资源邀约,计算机框架1回复主机120,需要运行两个任务在从机上,第一个任务需要资源2CPU、1GBRAM,第二个任务需要资源1CPU、2GB RAM,主机120根据空闲资源和资源邀约回复,依据DRF算法生成资源分配指令。
从机110,用于接收资源分配指令,并根据资源分配指令,确定预分配资源。
其中,预分配资源可以为从机110按照主机120发布的资源分配指令,在空闲资源中所确定的用于分配给特定任务的部分资源。
具体实现中,从机110上可以设置有计算机框架的执行器,用以执行各框架的任务。从机110接收到资源分配指令后,还用于接收各任务的具体资源分配命令,从机110按照具体资源分配命令,分配预分配资源给各框架的任务。
例如,从机110接收到两条分配命令:将2CPU、1GBRAM分配给计算机框架1的任务1,将1CPU、2GB RAM分配给计算机框架1的任务2。并将这两条命令存入命令列表,按列表顺序将资源分配给计算机框架1的任务1和计算机框架1的任务2,当任务1和任务2接收到资源后,任务执行器开始执行任务。
从机110,还用于获取在执行从机110的任务时的实际消耗资源,当实际消耗资源大于预分配资源,则向主机120申请释放剩余资源;当实际消耗资源小于预分配资源,则向主机120申请额外资源。
其中,实际消耗资源可以为任务在执行时,实际占用的资源。
其中,剩余资源可以为预分配资源超出实际消耗资源的资源。
其中,额外资源可以为实际消耗资源超出预分配资源的资源。
具体实现中,从机110中的任务执行器开始执行任务后,从机110每隔一定时间获取与任务相关的线程/进程ID,根据线程/进程ID查询任务实际消耗资源;从机110将预分配资源减去实际消耗资源,得到资源差值;当资源差值大于零时,从机110向主机120发送携带有资源差值信息的资源释放申请,请求释放剩余资源;当资源差值小于零时,从机110向主机120发送携带有资源差值信息的额外资源申请,申请分配额外资源。
例如,当任务1实际消耗资源为1CPU、0.5GBRAM,预分配资源为2CPU、1GBRAM时,此时资源差值为1、0.5,从机110得到资源差值后,向主机120发送资源释放申请,释放1CPU、0.5GBRAM至空闲资源;又例如,当任务1实际消耗资源为3CPU、1.5GBRAM,预分配资源为2CPU、1GBRAM时,此时资源差值为负1、负0.5,从机110向主机120发送额外资源申请,请求分配1CPU、0.5GBRAM。又例如,当任务1实际消耗资源为3CPU、0.5GBRAM,预分配资源为2CPU、1GBRAM时,此时资源差值为负1、0.5,从机110向主机120发送资源释放申请和额外资源增加申请,请求增加1CPU和释放0.5GBRAM。
上述一种资源调度***中,通过主机向从机发送资源分配指令,从机根据资源分配从空闲资源中分配预分配资源,用以执行任务,并根据预分配资源和任务执行时实际消耗资源,向主机提出额外资源申请或剩余资源释放,使任务执行时的消耗资源可以根据实际需求实时变动,及时地将剩余资源进行再分配,实现了资源碎片再利用,从而提高了资源利用率,进而解决了现有资源调度方法存在资源利用率不高的问题。
在另一个实施例中,主机120,还用于在接收到额外资源申请后,确定从机110是否存在未分配资源,若存在未分配资源,则向从机110发送携带额外资源信息的第一资源增加指令,指使从机110从未分配资源中分配额外资源至从机中的任务。
其中,未分配资源可以为,在空闲资源中,未被从机分配用以执行任务的资源。
其中,额外资源信息为,描述额外资源类型、大小的信息。
具体实现中,在上述主机120接收额外资源申请的过程中,主机120接收到从机110发送的额外资源申请后,从额外资源申请中提取额外资源的类型、大小,并将额外资源的类型、大小打包存储于本地,更具体地,当从机110有多个从机节点时,主机120接收多个从机节点的资源申请,并从多个从机节点的资源申请中提取额外资源的类型、大小,然后,将额外资源的类型、大小打包存储于服务器的额外资源信息表中,该额外资源信息表左边为从机节点标识,右边为与从机节点标识对应的额外资源信息。从机节点标识具有对应的从机节点。
主机120向从机110发送资源查看指令,查看从机110是否存在未分配资源。
当从机110接收到资源查看指令后,查看自身是否存在未分配资源,并将结果发送给主机120。
主机120确定从机110存在未分配资源后,从额外资源信息表中提取额外资源信息,并根据额外资源信息生成第一资源增加指令,指使从机110分配额外资源至从机110中的任务。例如,主机120确定从机节点标识为2的从机存在未分配资源,主机120从额外资源信息表中提取,与从机节点标识为2相对应的额外资源信息,并将该信息打包成JSON(JavaScript Object Notation,JS对象简谱)格式,与第一资源增加指令一起发送至节点标识为2的从机110。
上述一种资源调度***中,通过主机接收从机的资源申请,并确定从机存在剩余资源后,向从机发送第一资源增加指令,使从机可以根据指令从剩余资源中分配额外资源给从机中的任务;实现了剩余资源再利用,从而提高了资源利用率。
在另一个实施例中,从机110,还用于接收第一资源增加指令,并从第一资源增加指令中提取额外资源信息,根据额外资源信息,从未分配资源中分配额外资源至从机110的任务;当额外资源小于未分配资源,则从未分配资源中分配额外资源至任务。
具体实现中,从机110接收到第一资源增加指令后,将指令进行解析,根据关键字,从解析后的指令中提取额外资源信息。例如,从机110接收到第一资源增加指令后,将指令解析成JSON格式,根据额外资源信息的关键字,如“CPU”、“RAM”,从指令中提取额外资源大小。从机110判断额外资源与未分配资源大小,当额外资源小于未分配资源时,从未分配资源中分配额外资源至从机中的任务。例如,此时额外资源信息为:0.5CPU、1GBRAM,未分配资源为:1CPU、2GBRAM,此时额外资源小于未分配资源,则从为分配资源中分配0.5CPU、1GBRAM至从机中资源紧张的任务;又例如,此时额外资源信息为:1.5CPU、3GBRAM,未分配资源为:1CPU、2GBRAM,此时额外资源大于未分配资源,则从机110查看是否有其它任务释放剩余资源,若有释放剩余资源,则再次将额外资源与未分配资源进行对比。
上述一种资源调度***中,通过从机接收第一资源增加指令,并根据额外资源信息,从未分配资源中分配额外资源至从机中资源紧张的任务,使从机中资源紧张的任务可以获得额外资源,以完成任务的执行,从而提高了资源利用率。
在另一个实施例中,主机120,还用于确定从机110是否存在未分配资源,若从机110不存在未分配资源,则向从机110发送携带额外资源信息的第二资源增加指令,指使从机110从剩余资源中分配额外资源至任务。
具体实现中,主机120向从机110发送资源查询指令,并接收从机110返回的资源回复消息,然后,从资源回复消息中,读取未分配资源信息。当从机110不存在未分配资源时,主机120从本地提取额外资源信息,并将额外资源信息打包至第二资源增加指令后,将第二资源增加指令发送至从机110,指使从机110从所述剩余资源中分配额外资源至任务。
上述一种资源调度***中,通过主机向从机发送资源查询命令,并确定从机没有为分配的资源后,向从机发送第二资源增加指令,指使从机从剩余资源中分配额外资源至从机中资源紧张的任务,使从机中资源紧张的任务可以获得额外资源,以完成任务的执行,从而提高了资源利用率。
在另一个实施例中,从机110还用于确定其他任务有剩余资源,并从第二资源增加指令中提取额外资源信息,根据额外资源信息,从剩余资源中分配额外资源至任务;当额外资源小于剩余资源,则从剩余资源中分配额外资源至任务。
具体实现中,从机110接收到第二资源增加指令后,将指令进行解析,根据关键字,从解析后的指令中提取额外资源信息。然后,从机110查询其它任务是否有资源剩余情况,若其它任务有资源剩余情况,则向主机120提出资源申请,请求释放剩余资源,当释放的剩余资源大于额外资源时,从机110将额外资源分配至资源紧张的任务。
例如,当从机中一共有6个任务时,从机110接收到第二资源增加指令,并从中提取额外资源信息后,发送轮询查看指令,依次查看从机110中的任务在执行时消耗的资源,并将任务的实际消耗资源除以预分配资源,得到资源使用率,当一段时间内,资源使用率均不满100%,则获取该任务的相关进程/线程ID,并将ID信息存入列表中。轮询完毕后,从机110向主机提出资源释放申请,从列表中依次提取ID信息,根据ID信息,找到对应进程/线程后,释放对应进程/线程的剩余资源;当任务的剩余资源释放完毕后,从机110将剩余资源与额外资源作对比,当剩余资源大于额外资源时,从机110将额外资源分配至资源紧张的任务。更具体地,从机110接收到第二资源增加指令,并从中得知任务6向主机120提出额外资源申请,且申请的额外资源为0.5CPU、1GBRAM。此时从机110剩余资源为0CPU、0.5GBRAM。从机110依次向除任务4之外的其它任务发送查看指令,查看结果为,任务1、4、5均无资源剩余,任务2有资源剩余,且剩余0.2CPU、0.2GBRAM,任务3有资源剩余,且剩余0.3CPU、0.4GBRAM,从机110向主机120提出释放资源申请,申请释放任务2与任务3的剩余资源,当任务2与任务3的剩余资源释放完毕后,从机110的剩余资源为0.5CPU、1.1GBRAM,大于额外资源,从机110从剩余资源中,分配额外资源至任务6。
又例如,当从机中一共有6个任务时,从机110接收到第二资源增加指令,并从中提取额外资源信息后,发送查看指令,查看从机110的任务在执行时消耗的实际资源,一旦发现有资源剩余的任务,立即向主机120发送资源释放申请,请求释放剩余资源;从机110持续监控剩余资源,当发现剩余资源大于额外资源时,从机110将额外资源分配至资源紧张的任务。更具体地,从机110接收到第二资源增加指令,并从中得知任务6向主机120提出额外资源申请,且申请的额外资源为0.5CPU、1GBRAM。此时从机110剩余资源为0CPU、0.5GBRAM。从机110依次向除任务4之外的其它任务发送查看指令,当发现任务2有资源剩余,且剩余0.2CPU、0.2GBRAM后,从机110释放任务2的剩余资源,此时从机110的剩余资源为0.2CPU、0.7GBRAM,依旧小于额外资源;从机110继续查看任务3的资源使用情况,当发现任务3有资源富裕,且富裕0.3CPU、0.4GBRAM后,从机110释放任务3的剩余资源,此时从机110的剩余资源为0.5CPU、1.1GBRAM,大于额外资源,从机110从剩余资源中,分配额外资源至任务6。
上述一种资源调度***中,通过从机接收第二资源增加指令,并确定从机是否有剩余资源,根据额外资源与剩余资源,从剩余资源中分配额外资源至从机中资源紧张的任务,使从机中资源紧张的任务可以获得额外资源,以完成任务的执行,从而提高了资源利用率。
在另一个实施例中,从机110还用于,当额外资源大于剩余资源时,持续监控其他任务的资源剩余情况,若在规定时间内,剩余资源小于额外资源,则结束监控,资源调度失败。
具体实现中,当额外资源大于剩余资源时,从机110依次向其它任务发送查看指令,查看其它任务是否存在剩余资源,若其它任务中存在剩余资源,释放剩余资源;从机110将释放的剩余资源与额外资源进行对比,当释放的资源依旧不足以分配给资源紧张的任务时,从机110再次发送查看指令,查看其它任务是否存在剩余资源,当规定时间内,若释放的剩余资源依旧小于额外资源,则资源调度失败。
例如,当从机中有4个任务时,任务4向主机申请0CPU、1GBRAM,此时从机110拥有被释放的剩余资源为0CPU、0.1GBRAM,从机110依次向其他任务发送查看指令,当任务1没有剩余资源时,继续查看任务2是否有剩余资源,当任务2资源富裕,且富裕1CPU、0GBRAM,则从机110向主机提出申请,释放1CPU,此时从机110拥有的被释放的剩余资源为1CPU、0.1GBRAM,此时的0.1GBRAM依旧小于1GBRAM,从机110继续查看任务3是否有剩余资源,当任务3没有资源剩余时,此时从机110循环查看任务1、2、3的资源剩余情况,直至在规定时间内,从机110拥有的被释放的剩余资源大于额外资源,则从剩余资源中,分配额外资源至资源紧张的任务,此时资源调度成功。
上述一种资源调度***中,通过对其他任务的资源剩余情况进行持续监控,及时释放剩余资源,并从剩余资源中分配额外资源至从机中资源紧张的任务,使从机中资源紧张的任务可以获得额外资源,以完成任务的执行,从而提高了资源利用率。
在另一个实施例中,从机110还用于对任务进行监控,当任务发出资源不足报警和/或进入重试状态时,从机110向主机120提出额外资源申请。
具体实现中,从机110中的任务类型可以包括:待运行状态、运行中状态、完成状态、异常状态。从机110不间断地向任务发送状态查询指令,查看任务在执行时的状态。当任务因资源不足,返回内存或CPU不足信息,且状态变为异常状态时,从机110根据返回信息,指使任务进入重试状态,同时,向主机120提出额外资源申请。
上述一种资源调度***中,通过对任务的状态进行持续监控,当任务发出资源不足报警和/或进入重试状态时,及时向主机提出额外资源申请,使得后续主机可以根据资源申请,向资源紧张的任务分配额外资源,以保证任务的顺利执行,从而提高了资源利用率。
在另一个实施例中,主机120还用于接受额外资源申请,并生成从机110资源查看指令,查看从机110资源分配情况,根据从机110资源分配情况,发送第一资源增加命令。
具体实现中,从机110上设置有资源监视器。主机120接收到从机110发送的额外资源申请后,生成从机资源查看指令,并发送至从机110。从机110接收到资源查看指令后,从资源监视器中提取CPU、内存使用率,并根据从机110的CPU大小、内存大小、CPU使用率、内存使用率,计算从机110中未分配的资源大小、类型,将未分配的资源大小、类型与额外资源大小、类型进行对比,若未分配资源类型包括额外资源类型,且未分配资源大于或等于额外资源,则向从机110发送第一资源增加指令,指使从机110从未分配资源中分配额外资源至资源紧张的任务,例如,当未分配资源为1CPU、1GBRAM,额外资源为1GBRAM时,此时未分配资源类型包括额外资源类型,且未分配资源等于额外资源,则主机120向从机110发送第一资源增加指令。
上述一种资源调度***中,通过对从机的资源分配情况进行查看,当从机的未分配资源类型包括了额外资源类型,且未分配资源大于或等于额外资源时,主机想从机发送第一资源增加指令,使得后续从机可以根据资源增加指令,从未分配资源中分配额外资源至资源紧张的任务,以保证任务的顺利执行,进而提高了资源利用率。
在另一个实施例中,从机110还用于获取任务的进程/线程,并查看进程/线程的ID信息,根据进程/线程的ID信息查看进程/线程运行时实际消耗资源。
具体实现中,从机110获取与任务相关的线程/进程ID,根据ID信息查看每个进程/线程在运行时,实际消耗资源,叠加每个进程/线程的实际消耗资源,得到任务的实际消耗资源。
例如,当从机110中的任务从待运行状态变为运行状态时,从机110将此任务作为目标任务存入任务队列中。从机110依次从任务队列中提取目标任务,并查询与目标任务相关的线程/进程ID,根据进程/线程ID,查看每个进程/线程在运行时,实际消耗资源,叠加每个进程/线程的实际消耗资源,得到目标任务的实际消耗资源,然后,将目标任务标识和实际消耗资源存入数据表中。当任务队列中的任务从运行状态变为完成状态时,则将此任务从任务队列中删除。
上述一种资源调度***中,通过对任务的状态进行查看,得到目标任务,并查看与目标任务相关的线程/进程ID,根据线程/进程ID查看目标任务执行时,实际消耗资源,使得后续从机可以根据目标任务的实际消耗资源和预分配资源,选择释放剩余资源或申请额外资源,从而避免了资源碎片化,进而提高了资源利用率。
在另一个实施例中,资源为CPU、内存中的至少一种。
具体实现中,从机110向各个任务发送资源查看指令,查看与任务相关的线程/进程ID,根据进程/线程ID,查看每个进程/线程在运行时,实际消耗资的内存和CPU;从机110获取各个任务的预分配的内存和CPU;若实际消耗的内存和CPU小于预分配的内存和CPU,则从机110向主机120发送资源释放申请,请求释放剩余的内存和CPU;若实际消耗的内存和CPU大于预分配的内存和CPU,则向主机120申请额外资源;若从机110中有未分配的内存和CPU,且未分配的内存和CPU满足被分配条件,则主机120向从机110发送资源分配指令,指使从机110从未分配的内存和CPU中分配额外资源至资源紧张的任务;若从机110中没有未分配的内存和CPU,从机110从其它任务剩余的内存和CPU中分配额外资源至资源紧张的任务。
上述一种资源调度***中,通过对任务的资源类型、资源使用率进行查看,从而获得任务的实际消耗的内存和CPU和预分配的内存和CPU,根据实际消耗的内存和CPU和预分配的内存和CPU,选择释放剩余资源或申请额外资源,从而避免了资源碎片化,进而提高了资源利用率。
为了便于本领域技术人员的理解,如图2所示,提供了一种资源调度***的流程图;具体地,从机110向各个任务发送资源查看指令,查看各个任务在执行时,实际消耗资源是否小于预分配资源,若实际消耗资源小于预分配资源,则向主机120发送资源释放申请,请求释放剩余资源;若实际消耗资源大于预分配资源,则向主机120申请额外资源;主机120接收到从机110发送的额外资源申请后,向从机110发送从机资源查看指令,查看从机110的资源分配情况,若从机110中有未分配资源,且未分配资源大于额外资源,则主机120向从机110发送第一资源增加指令,指使从机110从未分配资源中分配额外资源至资源紧张的任务,若从机110中没有未分配的资源,主机120向从机110发送第二资源增加指令,从机110接收到第二资源增加指令后,查看从机110的其他任务是否有剩余资源,若其它任务有剩余资源,从机110向主机120提出资源释放申请,释放剩余资源,并将剩余资源分配至资源紧张的任务,若其它任务没有剩余资源,则从机资源紧张,资源申请失败。
为了便于本领域技术人员的理解,如图3所示,提供了另一种资源调度***的流程图;具体地,从机110发送轮询指令依次查看任务的实际消耗资源与预分配资源,若预分配资源大于实际消耗资源,则从机110向主机120提出资源释放申请,请求释放剩余资源,若预分配资源小于实际消耗资源,则从机110向主机120提出额外资源申请。主机120接收到额外资源申请后,查看从机110是否有未分配资源,若从机110有未分配资源,且未分配资源大于额外资源,则从机110从未分配资源中分配额外资源至资源紧张的任务;若从机110没有未分配资源,或未分配资源小于额外资源时,从机110向其它任务依次发送资源查询指令,查询其它任务是否有剩余资源,若其它任务有剩余资源,则查看剩余资源是否大于额外资源,若剩余资源大于为资源,则从剩余资源中分配额外资源至资源紧张的任务;若剩余资源小于额外资源,则从机110对其它任务进行持续监控,及时释放剩余资源,当一定时间内,剩余资源依旧小于额外资源,则资源调度失败。
为了便于本领域技术人员的理解,如图4所示,提供了一种资源调度***的结构图;该资源调度***可以基于Mesos进行资源调度。该资源调度***中包括主机和从机,从机中设置有各个计算机框架的执行器和资源调度器,资源调度器适配底层主流计算资源接口,实现任务和计算资源的调度,用以根据任务运行时实际消耗资源情况和预分配资源情况,动态进行资源调度;执行器用于执行各个计算机框架的任务。资源调度器首先检查执行器中运行的任务实际消耗的资源情况,并将实际消耗资源大小、资源利用率存储于资源数据表中,资源调度器还用于查看任务的预分配资源的大小,将预分配资源大小记录在资源数据表中,资源数据表左边为任务标识,右边为对应的预分配资源大小、资源利用率、实际消耗资源大小。资源调度器从资源表中提取任务运行时实际消耗大小与预分配的资源大小,并将实际消耗大小与预分配的资源大小进行比较,如果实际消耗资源大小等于预分配资源大小,资源调度器不做资源调度,调度结束退出;如果实际消耗资源大小小于预分配资源大小,说明任务的资源充足,则对其进行调度,释放富裕的资源,调度结束退出;如果实际消耗资源大小超过了预分配资源大小,任务出现内存或CPU不足报警,且任务在重试的同时进行资源申请;主机接收到资源申请后检查从机资源使用情况,如果从机中有剩余资源且剩余资源大于额外资源,则主机发送第一资源增加指令,指使资源调度器从剩余资源中分配额外资源至资源紧张的任务,调度结束;如果从机剩余资源小于额外资源,则检查其他任务是否有资源剩余的情况,如果没有,则本次资源的申请失败,调度结束;如果其他任务有资源剩余,则释放剩余资源,然后,资源调度器将剩余资源分配至资源紧张的任务。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种资源调度***,其特征在于,所述***包括:主机和从机;
所述主机,用于确定所述从机的空闲资源,根据所述空闲资源生成资源分配指令,并向所述从机发送所述资源分配指令;
所述从机,用于接收所述资源分配指令,并根据所述资源分配指令,确定预分配资源;所述预分配资源用于执行所述从机中的任务;
所述从机,还用于获取在执行所述从机中的任务时的实际消耗资源,当所述实际消耗资源小于所述预分配资源,则向所述主机申请释放剩余资源;所述剩余资源,为所述预分配资源超出所述实际消耗资源的资源;当所述实际消耗资源大于所述预分配资源,则向所述主机申请额外资源;所述额外资源,为所述实际消耗资源超出所述预分配资源的资源;
所述主机,还用于在接收到额外资源申请后,从所述额外资源申请中提取额外资源的类型、大小,并将额外资源的类型、大小作为额外资源信息打包存储于额外资源信息表,所述额外资源信息,为描述额外资源大小的信息;
所述主机,还用于向所述从机发送资源查看指令,以确定所述从机是否存在未分配资源,若存在未分配资源,则从所述额外资源信息表中提取对应的额外资源信息,向所述从机发送携带所述额外资源信息的第一资源增加指令,指使所述从机从所述未分配资源中分配额外资源至所述从机中的任务,所述未分配资源为在空闲资源中,未被从机分配用以执行任务的资源。
2.根据权利要求1所述的***,其特征在于,所述资源分配指令是指挥机器将资源进行分配的指示和命令。
3.根据权利要求2所述的***,其特征在于,所述从机,还用于接收所述第一资源增加指令,并从所述第一资源增加指令中提取所述额外资源信息,根据所述额外资源信息,从所述未分配资源中分配所述额外资源至所述从机中的任务;当所述额外资源小于所述未分配资源,则从所述未分配资源中分配所述额外资源至所述任务。
4.根据权利要求1所述的***,其特征在于,所述主机,还用于确定所述从机是否存在未分配资源,若所述从机不存在未分配资源,则向所述从机发送携带额外资源信息的第二资源增加指令,指使所述从机从所述剩余资源中分配额外资源至所述任务。
5.根据权利要求4所述的***,其特征在于,所述从机,还用于确定其他任务有剩余资源,并从所述第二资源增加指令中提取额外资源信息,根据所述额外资源信息,从所述剩余资源中分配所述额外资源至所述任务;当所述额外资源小于所述剩余资源,则从所述剩余资源中分配所述额外资源至所述任务。
6.根据权利要求5所述的***,其特征在于,所述从机还用于,当所述额外资源大于所述剩余资源时,持续监控所述其他任务的资源剩余情况,若在规定时间内,所述剩余资源小于所述额外资源,则结束监控,资源调度失败。
7.根据权利要求1所述的***,其特征在于,所述从机还用于对所述任务进行监控,当所述任务发出资源不足报警和/或进入重试状态时,所述从机向所述主机提出额外资源申请。
8.根据权利要求1所述的***,其特征在于,所述主机,还用于接受所述额外资源申请,并生成从机资源查看指令,查看所述从机资源分配情况,根据所述从机资源分配情况,发送第一资源增加命令。
9.根据权利要求1所述的***,其特征在于,所述从机,还用于获取所述任务的进程/线程,并查看所述进程/线程的ID信息,根据所述进程/线程的ID信息查看所述进程/线程运行时实际消耗资源。
10.根据权利要求1所述的***,其特征在于,所述资源为CPU、内存中的至少一种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910496359.5A CN110275777B (zh) | 2019-06-10 | 2019-06-10 | 一种资源调度*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910496359.5A CN110275777B (zh) | 2019-06-10 | 2019-06-10 | 一种资源调度*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110275777A CN110275777A (zh) | 2019-09-24 |
CN110275777B true CN110275777B (zh) | 2021-10-29 |
Family
ID=67960598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910496359.5A Active CN110275777B (zh) | 2019-06-10 | 2019-06-10 | 一种资源调度*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110275777B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535514A (zh) * | 2021-07-02 | 2021-10-22 | 中科曙光国际信息产业有限公司 | 作业跟踪方法、装置、计算机设备和存储介质 |
CN115269206B (zh) * | 2022-09-27 | 2023-01-10 | 湖南三湘银行股份有限公司 | 一种基于资源分配的数据处理方法及平台 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866918A (zh) * | 2012-07-26 | 2013-01-09 | 中国科学院信息工程研究所 | 面向分布式编程框架的资源管理*** |
CN106790332A (zh) * | 2015-11-24 | 2017-05-31 | ***通信集团公司 | 一种资源调度方法、***及主节点 |
CN107066332A (zh) * | 2017-01-25 | 2017-08-18 | 广东神马搜索科技有限公司 | 分布式***及其调度方法和调度装置 |
CN107343023A (zh) * | 2017-05-25 | 2017-11-10 | 北京奇艺世纪科技有限公司 | 一种Mesos管理集群中的资源分配方法、装置及电子设备 |
CN108268318A (zh) * | 2016-12-30 | 2018-07-10 | 华为技术有限公司 | 一种分布式***任务分配的方法和装置 |
CN108845884A (zh) * | 2018-06-15 | 2018-11-20 | 中国平安人寿保险股份有限公司 | 物理资源分配方法、装置、计算机设备和存储介质 |
KR20190061241A (ko) * | 2017-11-27 | 2019-06-05 | 주식회사 비디 | 리소스 통합관리를 위한 메소스 처리 장치 및 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365726B (zh) * | 2013-07-08 | 2016-05-25 | 华中科技大学 | 一种面向gpu集群的资源管理方法和*** |
CN105320559B (zh) * | 2014-07-30 | 2019-02-19 | ***通信集团广东有限公司 | 一种云计算***的调度方法和装置 |
CN107590002A (zh) * | 2017-09-15 | 2018-01-16 | 东软集团股份有限公司 | 任务分配方法、装置、存储介质、设备及分布式任务*** |
CN108170530B (zh) * | 2017-12-26 | 2021-08-17 | 北京工业大学 | 一种基于混合元启发式算法的Hadoop负载均衡任务调度方法 |
CN109582447B (zh) * | 2018-10-15 | 2020-09-29 | 中盈优创资讯科技有限公司 | 计算资源分配方法、任务处理方法及装置 |
-
2019
- 2019-06-10 CN CN201910496359.5A patent/CN110275777B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866918A (zh) * | 2012-07-26 | 2013-01-09 | 中国科学院信息工程研究所 | 面向分布式编程框架的资源管理*** |
CN106790332A (zh) * | 2015-11-24 | 2017-05-31 | ***通信集团公司 | 一种资源调度方法、***及主节点 |
CN108268318A (zh) * | 2016-12-30 | 2018-07-10 | 华为技术有限公司 | 一种分布式***任务分配的方法和装置 |
CN107066332A (zh) * | 2017-01-25 | 2017-08-18 | 广东神马搜索科技有限公司 | 分布式***及其调度方法和调度装置 |
CN107343023A (zh) * | 2017-05-25 | 2017-11-10 | 北京奇艺世纪科技有限公司 | 一种Mesos管理集群中的资源分配方法、装置及电子设备 |
KR20190061241A (ko) * | 2017-11-27 | 2019-06-05 | 주식회사 비디 | 리소스 통합관리를 위한 메소스 처리 장치 및 방법 |
CN108845884A (zh) * | 2018-06-15 | 2018-11-20 | 中国平安人寿保险股份有限公司 | 物理资源分配方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
一种改进的DRF算法对BESIII集群资源管理的优化;霍菁等;《核电子学与探测技术》;20141015;第34卷(第10期);第1153-1158页 * |
如何用curl来访问MESOS Scheduler HTTP API;高智芳;《www.uml.org.cn/yunjisuan/2016042810.asp?artid=17915》;20160428;第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110275777A (zh) | 2019-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108845884B (zh) | 物理资源分配方法、装置、计算机设备和存储介质 | |
CN107580023B (zh) | 一种动态调整任务分配的流处理作业调度方法及*** | |
CN110941481A (zh) | 资源调度方法、装置及*** | |
EP3567829B1 (en) | Resource management method and apparatus | |
CN103593242B (zh) | 基于Yarn框架的资源共享控制*** | |
CN107515786B (zh) | 资源分配方法、主装置、从装置和分布式计算*** | |
CN106293893B (zh) | 作业调度方法、装置及分布式*** | |
CN107613025B (zh) | 一种基于消息队列顺序回复的实现方法和装置 | |
CN110597858A (zh) | 任务数据处理方法、装置、计算机设备和存储介质 | |
CN111625331B (zh) | 任务调度方法、装置、平台、服务器及存储介质 | |
CN111182061B (zh) | 任务分发处理方法、***、计算机设备和存储介质 | |
CN110275777B (zh) | 一种资源调度*** | |
WO2019134292A1 (zh) | 一种容器分配方法、装置、服务器及介质 | |
US10606650B2 (en) | Methods and nodes for scheduling data processing | |
US20220283846A1 (en) | Pod deployment method and apparatus | |
CN110659131A (zh) | 任务处理方法、电子装置、计算机设备及存储介质 | |
CN111580951A (zh) | 一种任务分配方法及资源管理平台 | |
CN113419839A (zh) | 多类型作业的资源调度方法、装置、电子设备及存储介质 | |
CN109815087B (zh) | 任务处理进程监控方法、装置、计算机设备和存储介质 | |
CN111506400A (zh) | 计算资源分配***、方法、装置和计算机设备 | |
CN111225007B (zh) | 数据库连接方法、装置和*** | |
CN114500661A (zh) | 一种限流设备、方法、装置及存储介质 | |
CN114172903A (zh) | slurm调度***的节点扩容方法、装置、设备和介质 | |
CN112486502A (zh) | 分布式任务的部署方法、装置、计算机设备和存储介质 | |
CN116302456B (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 | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 510000 room 803, No. 4, energy road, Tianhe District, Guangzhou, Guangdong Province (office only) Patentee after: GUANGZHOU 9SKYCHINA INFORMATION TECHNOLOGY Co.,Ltd. Address before: 510665 room 4016, No. 433, Yanling Road, Tianhe District, Guangzhou City, Guangdong Province Patentee before: GUANGZHOU 9SKYCHINA INFORMATION TECHNOLOGY Co.,Ltd. |