CN110597614B - 一种资源调整方法及装置 - Google Patents
一种资源调整方法及装置 Download PDFInfo
- Publication number
- CN110597614B CN110597614B CN201810600412.7A CN201810600412A CN110597614B CN 110597614 B CN110597614 B CN 110597614B CN 201810600412 A CN201810600412 A CN 201810600412A CN 110597614 B CN110597614 B CN 110597614B
- Authority
- CN
- China
- Prior art keywords
- resource
- node
- adjustment
- resource adjustment
- machine
- 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
- 238000000034 method Methods 0.000 title claims abstract description 98
- 230000015654 memory Effects 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 23
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000006872 improvement Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种资源调整方法及装置。所述方法应用于包括多个机器节点的分布式系统中,所述机器节点上设置有多个作业节点,包括:接收资源调整请求,所述资源调整请求中包括目标作业节点所需调整的资源量以及所述目标作业节点所在机器节点的标识信息;设置所述资源调整请求对应的资源调整状态;若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点;接收所述机器节点的资源调整结果,并更新所述资源调整状态。本申请实施例可以实现分布式系统中应用程序运行期间的动态资源调整,可以提升分布式系统中各个机器节点上的资源利用率以及应用程序的运行效率。
Description
技术领域
本申请涉及大数据技术领域,特别涉及一种资源调整方法及装置。
背景技术
在Hadoop生态越来越完善的背景下,集群多用户租用的场景变得越来越普遍,而多用户任务下的资源调度就显得尤为关键。比如,公司拥有具有几十个计算节点的Hadoop集群,A项目组要进行一个计算任务,B项目组也要进行一个计算任务,集群应该先执行哪个计算任务。又或者,如果多个用户同时提交大量的计算任务,这些计算任务又该如何执行。为了解决上面的技术问题,需要在Hadoop集群中引入资源管理和任务调度的框架。目前,主流的资源管理系统主要包括Google的Borg、Apache的YARN、Twitter的Mesos、腾讯搜搜的Torc、Facebook的Corona等。
在分布式系统的应用场景中,存在资源动态调整的需求。典型地,分布式系统中可以运行着多个应用,应用按其运行生命周期的长短可分为长应用和短应用。短应用通常是离线作业,作业从提交到完成所消耗的时间有限,作业完成后,其占用的资源会被释放,如SQL查询等。长应用通常是一些在线服务,启动后除非意外或人为终止,将一直运行下去,如网页后端。长应用通常长期占用集群上的一些资源,且运行期间对资源的需求会随着时间和/或流量的变化而变化。以电商网站的后端服务举例,在晚上8点-12点的流量会比凌晨2点到4点的流量要大很多,自然在线服务作业需要的资源请求也随之增大。如果可以根据时间和/或业务需求动态调整长应用作业的资源请求,在繁忙的时候扩大资源请求,在空闲的时候缩小资源请求,那么在长应用作业空闲的时候,系统可以提供额外的剩余资源运行更多的短应用。
目前,现有技术中还没有资源申请动态调整的解决方案,长应用一经提交,资源请求的大小即不能改变。对此,在长应用与短应用共存的集群中,长应用无法根据时间和/或业务需求来动态调整资源请求放入大小,至少会存在以下两个问题:
一、当长应用处于空闲状态时,申请的剩余资源无法被其他应用使用,造成资源浪费;
二、当长应用处于繁忙状态时,申请的资源大小可能不满足业务需求,造成长应用作业在执行过程中被限制。
因此,现有技术中亟需一种对分布式系统中资源申请进行动态调整的方式。
发明内容
本申请实施例的目的在于提供一种资源调整方法及装置,可以提升分布式系统中各个机器节点上的资源利用率以及应用程序的运行效率。
本申请实施例提供一种资源调整分配方法及装置是这样实现的:
一种资源调整方法,应用于包括多个机器节点的分布式系统中,所述机器节点上设置有多个作业节点,所述方法包括:
接收资源调整请求,所述资源调整请求中包括目标作业节点所需调整的资源量以及所述目标作业节点所在机器节点的标识信息;
设置所述资源调整请求对应的资源调整状态;
若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点;
接收所述机器节点的资源调整结果,并更新所述资源调整状态。
一种资源调整装置,所述装置设置于包括多个机器节点的分布式系统中,所述机器节点上设置有多个作业节点,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
接收资源调整请求,所述资源调整请求中包括目标作业节点所需调整的资源量以及所述目标作业节点所在机器节点的标识信息;
设置所述资源调整请求对应的资源调整状态;
若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点;
接收所述机器节点的资源调整结果,并更新所述资源调整状态。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任一实施例所述的步骤。
本申请提供的资源调整方法及装置,可以根据在应用程序运行过程中目标作业节点的资源调整请求,根据所述目标作业节点所在的机器节点的状态,实现所述目标作业节点的动态资源调整。通过本申请的实施例方法,可以实现应用程序在运行过程中的动态资源调整,一方面可以实现部分应用在空闲状态时剩余资源的释放以移作他用,另一方面还可以实现部分应用在繁忙状态时可以获取足够的资源量以满足业务需求,这样,可以提升分布式系统中各个机器节点上的资源利用率以及应用程序的运行效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中YARN的工作流程图;
图2是本申请提供的资源调整方法的一种实施例的方法流程示意图;
图3是本申请提供的资源调整方法的一种实施例的方法交互图;
图4是本申请提供的资源抢占技术的示意图;
图5是本申请提供的资源调整装置的一种实施例的模块结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为了方便本领域技术人员理解本申请实施例提供的技术方案,下面先对技术方案实现的技术环境进行说明。
为了清楚地示出本申请技术环境中的细节,因此非限制性地以资源管理系统YARN(Yet Another Resource Negotiator)举例说明。YARN是Hadoop系统上的资源管理平台,其主要作用是实现集群资源的统一管理和调度。YARN的基本思想是将Mapreduce模型中用于连接应用程序与Hadoop的后台程序Jobtracker拆分成两个独立的服务模块:全局的资源管理器RM(Resource Manager)和每个应用程序特有的应用管理器AM(Application Master)。其中,RM负责整个系统的资源管理和分配,而AM则负责单个应用程序的管理。图1示出了YARN的工作流程图,如图1所示,YARN中不仅包括资源管理器、应用管理器,还包括节点管理器NM(Node Manager)以及作业节点(Job Worker),其中,所述节点管理器设置于集群中的每个机器节点(Machine Node)上,用于负责各个机器节点的资源管理和分配,而作业节点用于执行具体的应用程序作业,且所述作业节点只与所述应用管理器通信。
用户向YARN提交一个应用程序后,YARN将分为两个阶段运行该应用程序:第一阶段是启动该应用程序的应用管理器;第二个阶段是由应用管理器创建该应用程序、为所述应用程序申请资源以及监控整个运行过程,直到运行成功。如图1所示,上述过程主要包括下述步骤:
S1:用户通过客户端向资源管理器提交应用程序的作业任务,所述作业任务包括应用管理器的程序、启动应用管理器的命令、用户程序等;
S2:所述资源管理器在接受到所述应用程序的作业任务之后,从集群中为所述应用管理器分配一个机器节点(如图1中的机器节点1),并将所述应用管理器设置于所述机器节点上。在此过程中,所述资源管理器与所述机器节点的节点管理器进行通信,请求所述节点管理器在所述机器节点上分配资源(如容器(container))以启动所述应用管理器;
S3:所述应用管理器根据所述作业任务所需的资源量向所述资源管理器发送资源申请;
S4:所述资源管理器在接收到所述资源申请之后,根据分布式系统中剩余的可用资源划分出可以分配给所述应用程序的可用资源,并发送划分资源的指令至相应的机器节点(如图1中的机器节点1和机器节点2)上的节点管理器,以及,发送分配资源的答复消息至所述应用管理器,所述答复消息中包含分配的资源所在的机器节点的标识信息;
S5:所述应用管理器在接收到所述分配资源的答复消息之后,通过各个机器节点上的节点管理器将所述应用程序的作业任务分配到对应的机器节点上以执行所述应用程序;
S6:所述应用管理器通过各个机器节点上的节点管理器获取各个作业节点的状态信息。
需要说明的是,在作业节点执行作业任务的过程中,所述作业节点所在机器节点上的节点管理器可以通过系统限制作业节点的物理资源消耗。比如,一个作业节点在其所在机器节点上的资源量为1核CPU,1G内存,那么在该作业节点执行任务过程中,对CPU的占用量将被节点管理器限制在1个CPU核以内,同样地,占用内存也会被限制1G以内。基于此,若由于业务需求,需要更多的资源量,而所述作业节点被分配的资源量无法满足所述业务需求,则影响到所述作业节点所对应的应用程序的运行。
基于上文所述的资源申请动态调整的技术需求,本申请提出一种资源调整的方法,该方法可以实现作业节点上资源的动态调整,使得所述作业节点能够满足实际的业务需求,保证分布式系统中应用程序的顺利运行。
下面结合附图对本申请所述的资源调整方法进行详细的说明。图2是本申请提供的资源调整方法的一种实施例的方法流程示意图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际中的资源调整过程中,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至是分布式处理环境)。
具体的本申请提供的资源调整方法的一种实施例如图2所示,所述方法应用于包括多个机器节点的分布式系统中,所述机器节点上设置有多个作业节点,可以包括:
S201:接收资源调整请求,所述资源调整请求中包括目标作业节点所需调整的资源量以及所述目标作业节点所在机器节点的标识信息。
S203:设置所述资源调整请求对应的资源调整状态。
S205:若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点。
S207:接收所述机器节点的资源调整结果,并更新所述资源调整状态。
为了更加清楚地说明本申请提供的技术方案,可以结合图3所示的交互流程图说明上述实施例方法。需要说明的是,当资源管理器与机器节点进行通信的过程中,一般所述机器节点上的节点管理器进行通信,因此,图3中的节点管理器代表所述节点管理器所在的机器节点。基于上述为应用程序申请资源以及运行应用程序的方法流程,在应用程序的正常运行期间,所述应用管理器可以从各个机器节点上的节点管理器获取各个作业节点的状态,如资源利用率等。若所述应用管理器检测到部分作业节点的资源利用率较低或者资源利用率超出预设阈值,则可以向所述资源管理器发送资源调整请求。例如,若作业节点的资源利用率较低,可以申请降低该作业节点的资源量,以释放该作业节点的部分资源,将释放的资源移作他用;若作业节点的资源利用率超出预设阈值,可以申请增加该作业节点的资源量,以保证该作业节点的正常运行。本实施例中,所述资源调整请求中可以包括所述目标作业节点所需调整的资源量以及所述目标作业节点所在机器节点的标识信息。在一个示例中,所述资源调整请求中可以包括下述格式的信息:{作业节点:2002;机器节点:A-1002;请求调整前资源量:1核CPU,1GCPU;请求调整后资源量:4核CPU,2GCPU}。当然,在其他实施方式中,所述资源调整请求可以具有其他格式的信息,例如包括资源调整量,以及所述资源调整量是增加或者减少的标识等等,本申请对此不做限制。
本实施例中,所述资源管理器在接收到应用管理器的资源调整请求之后,可以通过所述资源调整请求中所述目标作业节点所在机器节点的标识信息,从分布式系统中定位到相应的机器节点,并确认所述机器节点是否满足所述目标作业节点的资源调整需求。在一个实施例中,若确定所述目标作业节点需要减少资源量,所述资源管理器可以在所述资源管理器内部调整所述目标作业节点对应的资源量,并发送调整资源的指令至相应的机器节点。在本申请的一个实施例中,还可以在所述资源管理器内部锁定所述目标作业节点减少的资源量,直至接收到所述机器节点的资源调整成功的结果。这样,可以防止在机器节点调整资源失败的情况下,没有足够的资源使得所述目标作业节点恢复至请求调整前的资源量。
在另一个实施例中,若确定所述目标作业节点需要增加资源量,所述资源管理器可以判断所述机器节点上是否剩余足够的资源量以满足所述目标作业节点所需增加的资源量。若判断结果为是,则可以发送调整资源的指令至所述机器节点。否则,可以确定资源调整失败,并可以将资源调整失败的答复消息发送至所述应用管理器。本实施例中,若确定所述机器节点上剩余足够的资源量以满足所述目标作业节点所需增加的资源量,所述资源管理器可以在所述资源管理器内部调整所述目标作业节点的资源量,并发送调整资源的指令至所述机器节点。在本申请的一个实施例中,所述资源管理器在确定所述目标作业节点需要增加资源量,且还未确定所述机器节点上是否剩余足够的资源量以满足所述目标作业节点所需增加的资源量时,所述资源管理器可以锁定所述机器节点上释放的部分或者全部资源量,防止释放的资源量被其他作业节点占用,保证所述目标作业节点能够成功实现资源调整。
在本实施例中,可以设置所述资源调整请求对应的资源调整状态,所述资源调整状态包括下述中的一种:资源管理器调整成功、资源管理器调整失败、机器节点调整成功、机器节点调整失败。由上述可知,在资源调整过程中,资源管理器在接收所述目标作业节点的资源调整请求并确定所述机器节点满足资源调整量时,可以在所述资源管理器内部(通常是资源调度器)对所述目标作业节点进行资源调整。在上述过程中,若所述资源管理器确定所述机器节点满足所述目标作业节点的调整需求,则可以确定所述资源管理器调整成功;否则,资源管理器调整失败。所述资源调整器在内部调整成功之后,可以发送调整资源的指令至对应的机器节点。当然,即使所述资源管理器调整成功,所述机器节点也有可能因为各种因素调整成功或者失败。因此,在上述过程中,若确定所述机器节点满足所述目标作业节点的资源调整请求,则可以将所述资源调整状态更新为资源管理器调整成功。
本实施例中,所述资源管理器可以记录所述资源调整请求对应的资源调整状态,即使在后续所述资源管理器发生故障并需要重启之后,可以通过获取所述资源调整状态,进行下一步的决策。
在本申请的一个实施例中,所述资源调整请求中还可以包括时间戳,所述时间戳用于标记所述资源调整请求的时间信息。所述时间戳可以包括分布式系统所在时区的标准时间,还可以包括系统中设置的具有时间先后意义的时间信息。所述资源管理器在接收到资源调整请求之后,可以判断所述资源请求中的时间戳是否小于执行所述判断步骤的时刻对应的时间戳。在确定所述资源请求中的时间戳是否小于执行所述判断步骤的时刻对应的时间戳之后,再确定所述机器节点上的剩余资源是否满足所述目标节点的资源调整需求。这样,通过时间戳的验证方式可以保证所述资源调整请求具有时效性,排除已经失去时效性的资源调整请求。
在本申请的一个实施例中,在一些情况下,容易发生所所述标识信息对应的机器节点上剩余的资源量不满足所述目标作业节点所需增加的资源量,针对上述情况,可以获取所述机器节点上的资源调整信息,所述资源调整信息可以包括部署在所述机器节点上的作业节点以及所述作业节点作业优先级和占用的资源量。然后,可以从优先级最低的作业节点开始,逐个释放所述作业节点占用的资源量,直至所述机器节点上剩余的资源量满足所述目标作业节点所需增加的资源量。最后,在调整成功之后,可以将所述资源调整状态更新为资源管理器调整成功。
下面结合图4通过一个示例说明上述实施例方法,如图4所示,假设目标作业节点所在的机器节点的总资源量为CPU:100、内存:100,目前该机器节点的剩余资源量为CPU:0、内存:30。所述目标作业节点需要增加资源量,且增加的资源量为CPU:30、内存:30,优先级为4(最高优先级)。如图4所示的所述机器节点上的三个资源调整请求,按照优先级从低到高的顺序遍历,即从资源调整请求C开始,若释放资源调整请求C对应的作业节点所占用的资源量,那么机器节点上剩余资源量更新为CPU:20、内存:40。但此时剩余的资源量还不满足所述目标作业节点所需的资源量,因此继续遍历到资源调整请求B,若释放资源调整请求B对应的作业节点所占用的资源量,那么机器节点上剩余资源量更新为CPU:80、内存:80。此时剩余的资源量可以满足所述目标作业节点所需的资源量。从剩余的资源量中分配足够的资源量给目标作业节点后,所述机器节点上剩余的资源量为CPU:50、内存:50。此时,还可以将剩余的资源量按照优先级从高到底的顺序分配给其他作业节点,例如将剩余的资源调整给资源调整请求B对应的作业节点。
通过上述方式,可以在所述机器节点上的剩余资源量不满足所述目标作业节点所需增加的资源量的情况下,按照优先等级的顺序,释放所述机器节点上正在进行资源调整请求的作业节点上的资源量,直至满足所述目标作业节点所需增加的资源量。通过上述资源“抢占”的方式,可以保证高优先级的资源调整请求能够得到快速处理。
在本申请的一个实施例中,所述资源管理器在接收所述资源调整请求之后,还可以存储所述资源调整请求对应的信息,所述信息可以包括所述目标作业节点的请求调整前资源量、请求调整后资源量以及所述资源调整状态,需要说明的是,可以将所述资源调整请求对应的信息存储于所述资源管理器的内存空间中,例如备忘录等,即使所述资源管理器由于故障问题而发生重启,也可以在重启之后访问到该内存空间,获取到所述资源调整请求对应的信息。另外,还可以将所述信息与所述资源调整请求相关联,具体可以通过数据表等方式进行存储关联,本申请对于关联的方式不做限制。
在本申请的一个实施例中,若在接收所述机器节点的资源调整结果之前发生了资源管理器由于故障而重启的事件,则可以获取所述资源调整状态。在实际情况下,在未接收到所述机器节点的资源调整结果或者即使接收到所述机器节点的资源调整结果,但是还未来得及更新所述资源调整状态之前,对于所述目标作业节点的资源调整请求,可以调整成功,也可以调整失败。若获取到所述资源调整状态为资源管理器调整成功,则可以根据所述目标作业节点的所述请求调整前资源量和所述请求调整后资源量,判断是否在所述资源管理器上对所述目标作业节点完成资源调整,即,可以判断在所述资源管理器的资源调度器上是否对所述目标作业节点完成资源调整。若所述资源调度器上完成资源调整,则继续下一个步骤,即发送资源调整的指令至所述机器节点;否则,在所述资源调度器完成资源调整之后,再发送资源调整的指令至所述机器节点。
在本申请的一个实施例中,若接收到所述机器节点返回的资源调整结果并根据所述资源调整结果更新所述资源调整状态之后,所述资源管理由于故障发生重启,则可以获取所述资源调整状态。若获取到所述资源调整状态为机器节点调整成功,则可以根据所述目标作业节点的所述请求调整前资源量和所述请求调整后资源量,判断是否在所述资源管理器上对所述目标作业节点完成资源调整。若判断结果为是,则发送机器节点资源调整成功的结果;否则,在所述资源管理器上对所述目标作业节点完成资源调整之后,发送机器节点资源调整成功的结果。若获取到所述资源调整状态为机器节点调整失败,则可以根据所述目标作业节点的请求调整前资源量、请求调整后资源量,判断所述资源管理器上分配给所述目标作业节点的资源量是否为所述请求调整前资源量;若判断结果为是,则发送机器节点资源调整失败的结果;否则,在所述资源管理器上将分配给所述目标作业节点的资源量恢复为所述请求调整前资源量之后,发送机器节点资源调整成功的结果。
通过上述针对资源管理器发生故障而重启之后的实施方式,可以保证即使资源管理器因发生故障而重启,也可以快速获取资源管理器重启之前资源调整请求的处理状态,这样,可以根据所述资源调整请求的处理状态继续实施对所述资源调整请求的处理,保证完成所述目标作业节点的资源调整,从而保证对应的应用程序的顺利运行。另外,上述实施例方式可以保证在动态资源调整过程中,基于应用管理器、资源管理器、节点管理器之间复杂的通信关系,通过经过各个角色的确认关系,顺利完成动态资源调整。
本申请提供的资源调整方法,可以根据在应用程序运行过程中目标作业节点的资源调整请求,根据所述目标作业节点所在的机器节点的状态,实现所述目标作业节点的动态资源调整。通过本申请的实施例方法,可以实现应用程序在运行过程中的动态资源调整,一方面可以实现部分应用在空闲状态时剩余资源的释放以移作他用,另一方面还可以实现部分应用在繁忙状态时可以获取足够的资源量以满足业务需求,这样,可以提升分布式系统中各个机器节点上的资源利用率以及应用程序的运行效率。
如图5所示,本申请另一方面还提供一种资源调整装置,所述装置设置于包括多个机器节点的分布式系统中,所述机器节点上设置有多个作业节点,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
接收资源调整请求,所述资源调整请求中包括目标作业节点所需调整的资源量以及所述目标作业节点所在机器节点的标识信息;
设置所述资源调整请求对应的资源调整状态;
若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点;
接收所述机器节点的资源调整结果,并更新所述资源调整状态。
可选的,在本申请的一个实施例中,所述资源调整请求中还可以包括时间戳,所述时间戳用于标记所述资源调整请求的时间信息,对应地,所述处理器在实现步骤若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点时包括:
判断所述资源请求中的时间戳是否小于执行所述判断步骤的时刻对应的时间戳;
若判断结果为是,则判断所述机器节点是否满足所述目标作业节点的资源调整需求;
若判断的结果为所述机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点。
可选的,在本申请的一个实施例中,所述处理器在实现步骤若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点时可以包括:
判断所述机器节点上剩余的资源量是否满足所述目标作业节点所需增加的资源量;
若判断结果为是,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点。
可选的,在本申请的一个实施例中,所述处理器在实现所述步骤判断所述机器节点上剩余的资源量是否满足所述目标作业节点所需增加的资源量之后,还可以包括:
若判断结果为否,则更新所述资源调整状态。
可选的,在本申请的一个实施例中,所述处理器在实现所述步骤接收资源调整请求之后、所述确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求之前,还可以包括:
确定所述目标作业节点需要增加资源量;
锁定所述机器节点上释放的部分或者全部资源量。
可选的,在本申请的一个实施例中,所述处理器在实现步骤若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求时,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点时可以包括:
确定所述目标作业节点需要减少资源量;
更新所述资源调整状态,并发送调整资源的指令至所述机器节点;
锁定所述目标作业节点所需减少的资源量,直至接收到所述机器节点的资源调整成功的结果。
可选的,在本申请的一个实施例中,所述处理器在实现步骤接收资源调整请求之后,还可以包括:
存储所述资源调整请求对应的信息,所述信息包括所述目标作业节点的请求调整前资源量、请求调整后资源量以及资源调整状态,其中,所述资源调整状态包括下述中的一种:资源管理器调整成功、资源管理器调整失败、机器节点调整成功、机器节点调整失败。
可选的,在本申请的一个实施例中,所述处理器在实现步骤接收所述机器节点的资源调整结果之前,还可以包括:
所述资源管理器发生故障,则重启所述资源管理器,并在所述资源管理器重启之后获取存储的所述资源调整状态;
若获取到所述资源调整状态为资源管理器调整成功,则根据所述目标作业节点的所述请求调整前资源量和所述请求调整后资源量,判断是否在所述资源管理器上对所述目标作业节点完成资源调整;
若判断结果为是,则发送调整资源的指令至所述机器节点;否则,在所述资源管理器上对所述目标作业节点完成资源调整之后,发送调整资源的指令至所述机器节点。
可选的,在本申请的一个实施例中,所述处理器在实现步骤接收所述机器节点的资源调整结果之前,还可以包括:
所述资源管理器发生故障,则重启所述资源管理器,并在所述资源管理器重启之后获取存储的所述资源调整状态;
若获取到所述资源调整状态为资源管理器调整失败,则发送资源调整失败的结果。
可选的,在本申请的一个实施例中,所述处理器在实现步骤接收所述机器节点的资源调整结果之后,还可以包括:
所述资源管理器发生故障,则重启所述资源管理器,并在所述资源管理器重启之后获取存储的所述资源调整状态;
若获取到所述资源调整状态为机器节点调整成功,则根据所述目标作业节点的所述请求调整前资源量和所述请求调整后资源量,判断是否在所述资源管理器上对所述目标作业节点完成资源调整;
若判断结果为是,则发送机器节点资源调整成功的结果;否则,在所述资源管理器上对所述目标作业节点完成资源调整之后,发送机器节点资源调整成功的结果。
可选的,在本申请的一个实施例中,所述处理器在实现步骤接收所述机器节点的资源调整结果之后,还可以包括:
所述资源管理器发生故障,则重启所述资源管理器,并在所述资源管理器重启之后获取存储的所述资源调整状态;
若获取到所述资源调整状态为机器节点调整失败,则根据所述目标作业节点的请求调整前资源量、请求调整后资源量,判断所述资源管理器上分配给所述目标作业节点的资源量是否为所述请求调整前资源量;
若判断结果为是,则发送机器节点资源调整失败的结果;否则,在所述资源管理器上将分配给所述目标作业节点的资源量恢复为所述请求调整前资源量之后,发送机器节点资源调整成功的结果。
可选的,在本申请的一个实施例中,所述处理器在实现步骤若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点时可以包括:
确定所述标识信息对应的机器节点上剩余的资源量不满足所述目标作业节点所需增加的资源量;
获取所述机器节点上需要增加资源量的多个资源调整请求,所述资源调整请求中包括需要调整资源的作业节点的优先级以及所述作业节点已占用的资源量;
从优先级最低的作业节点开始,逐个释放所述作业节点已占用的资源量,直至所述机器节点上剩余的资源量满足所述目标作业节点所需增加的资源量;
更新所述资源调整状态,发送调整资源的指令至所述机器节点。
可选的,在本申请的一个实施例中,所述处理器在实现步骤从优先级最低的作业节点开始,逐个释放所述作业节点已占用的资源量,直至所述机器节点上剩余的资源量满足所述目标作业节点所需增加的资源量之后,还可以包括:
确定所述机器节点上剩余的资源量在分配给所述目标作业节点所需的资源量之后,还剩余资源量;
将所述机器节点上剩余的资源量按照优先级从高至低的顺序分配给需要调整资源的作业节点。
本申请另一方面还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任一实施例所述方法的步骤。
所述计算机可读存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。本实施例所述的计算机可读存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (27)
1.一种资源调整方法,其特征在于,应用于包括多个机器节点的分布式系统中,所述机器节点上设置有多个作业节点,所述方法包括:
在应用程序运行的过程中资源管理器接收应用管理器发送的资源调整请求,所述资源调整请求中包括目标作业节点所需调整的资源量以及所述目标作业节点所在机器节点的标识信息;所述目标作业节点用于执行所述应用程序;所述资源调整请求是应用管理器从各个机器节点上的节点管理器获取各个作业节点的状态之后根据各个作业节点的状态确定的;
设置所述资源调整请求对应的资源调整状态;
若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则在资源管理器内部对所述目标作业节点进行资源调整,并更新所述资源调整状态为资源管理器调整成功,并发送调整资源的指令至所述机器节点;
接收所述机器节点的资源调整结果,并更新所述资源调整状态为机器节点调整成功或机器节点调整失败;
记录所述资源调整请求对应的资源调整状态,并在资源管理器重启之后,根据所记录的资源调整状态进行下一步的决策,以继续执行资源调整操作。
2.根据权利要求1所述的方法,其特征在于,所述资源调整请求中还包括时间戳,所述时间戳用于标记所述资源调整请求的时间信息,对应地,若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点包括:
判断所述资源请求中的时间戳是否小于执行所述判断步骤的时刻对应的时间戳;
若判断结果为是,则判断所述机器节点是否满足所述目标作业节点的资源调整需求;
若判断的结果为所述机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点。
3.根据权利要求1或2所述的方法,其特征在于,若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点包括:
判断所述机器节点上剩余的资源量是否满足所述目标作业节点所需增加的资源量;
若判断结果为是,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点。
4.根据权利要求3所述的方法,其特征在于,在所述判断所述机器节点上剩余的资源量是否满足所述目标作业节点所需增加的资源量之后,所述方法还包括:
若判断结果为否,则更新所述资源调整状态。
5.根据权利要求1或2所述的方法,其特征在于,在接收资源调整请求之后、确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求之前,所述方法还包括:
确定所述目标作业节点需要增加资源量;
锁定所述机器节点上释放的部分或者全部资源量。
6.根据权利要求1或2所述的方法,其特征在于,若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求时,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点包括:
确定所述目标作业节点需要减少资源量;
更新所述资源调整状态,并发送调整资源的指令至所述机器节点;
锁定所述目标作业节点所需减少的资源量,直至接收到所述机器节点的资源调整成功的结果。
7.根据权利要求1所述的方法,其特征在于,在接收资源调整请求之后,所述方法还包括:
存储所述资源调整请求对应的信息,所述信息包括所述目标作业节点的请求调整前资源量、请求调整后资源量以及资源调整状态,其中,所述资源调整状态包括下述中的一种:资源管理器调整成功、资源管理器调整失败、机器节点调整成功、机器节点调整失败。
8.根据权利要求7所述的方法,其特征在于,在所述接收所述机器节点的资源调整结果之前,所述方法还包括:
所述资源管理器发生故障,则重启所述资源管理器,并在所述资源管理器重启之后获取存储的所述资源调整状态;
若获取到所述资源调整状态为资源管理器调整成功,则根据所述目标作业节点的所述请求调整前资源量和所述请求调整后资源量,判断是否在所述资源管理器上对所述目标作业节点完成资源调整;
若判断结果为是,则发送调整资源的指令至所述机器节点;否则,在所述资源管理器上对所述目标作业节点完成资源调整之后,发送调整资源的指令至所述机器节点。
9.根据权利要求7所述的方法,其特征在于,在所述接收所述机器节点的资源调整结果之前,所述方法还包括:
所述资源管理器发生故障,则重启所述资源管理器,并在所述资源管理器重启之后获取存储的所述资源调整状态;
若获取到所述资源调整状态为资源管理器调整失败,则发送资源调整失败的结果。
10.根据权利要求7所述的方法,其特征在于,在所述接收所述机器节点的资源调整结果之后,所述方法还包括:
所述资源管理器发生故障,则重启所述资源管理器,并在所述资源管理器重启之后获取存储的所述资源调整状态;
若获取到所述资源调整状态为机器节点调整成功,则根据所述目标作业节点的所述请求调整前资源量和所述请求调整后资源量,判断是否在所述资源管理器上对所述目标作业节点完成资源调整;
若判断结果为是,则发送机器节点资源调整成功的结果;否则,在所述资源管理器上对所述目标作业节点完成资源调整之后,发送机器节点资源调整成功的结果。
11.根据权利要求7所述的方法,其特征在于,在所述接收所述机器节点的资源调整结果之后,所述方法还包括:
所述资源管理器发生故障,则重启所述资源管理器,并在所述资源管理器重启之后获取存储的所述资源调整状态;
若获取到所述资源调整状态为机器节点调整失败,则根据所述目标作业节点的请求调整前资源量、请求调整后资源量,判断所述资源管理器上分配给所述目标作业节点的资源量是否为所述请求调整前资源量;
若判断结果为是,则发送机器节点资源调整失败的结果;否则,在所述资源管理器上将分配给所述目标作业节点的资源量恢复为所述请求调整前资源量之后,发送机器节点资源调整成功的结果。
12.根据权利要求1所述的方法,其特征在于,若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点包括:
确定所述标识信息对应的机器节点上剩余的资源量不满足所述目标作业节点所需增加的资源量;
获取所述机器节点上需要增加资源量的多个资源调整请求,所述资源调整请求中包括需要调整资源的作业节点的优先级以及所述作业节点已占用的资源量;
从优先级最低的作业节点开始,逐个释放所述作业节点已占用的资源量,直至所述机器节点上剩余的资源量满足所述目标作业节点所需增加的资源量;
更新所述资源调整状态,发送调整资源的指令至所述机器节点。
13.根据权利要求12所述的方法,其特征在于,在所述从优先级最低的作业节点开始,逐个释放所述作业节点已占用的资源量,直至所述机器节点上剩余的资源量满足所述目标作业节点所需增加的资源量之后,所述方法还包括:
确定所述机器节点上剩余的资源量在分配给所述目标作业节点所需的资源量之后,还剩余资源量;
将所述机器节点上剩余的资源量按照优先级从高至低的顺序分配给需要调整资源的作业节点。
14.一种资源调整装置,其特征在于,所述装置设置于包括多个机器节点的分布式系统中,所述机器节点上设置有多个作业节点,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
在应用程序运行的过程中资源管理器接收应用管理器发送的资源调整请求,所述资源调整请求中包括目标作业节点所需调整的资源量以及所述目标作业节点所在机器节点的标识信息;所述目标作业节点用于执行所述应用程序;所述资源调整请求是应用管理器从各个机器节点上的节点管理器获取各个作业节点的状态之后根据各个作业节点的状态确定的;
设置所述资源调整请求对应的资源调整状态;
若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则在资源管理器内部对所述目标作业节点进行资源调整,并更新所述资源调整状态为资源管理器调整成功,并发送调整资源的指令至所述机器节点;
接收所述机器节点的资源调整结果,并更新所述资源调整状态为机器节点调整成功或机器节点调整失败;
记录所述资源调整请求对应的资源调整状态,并在资源管理器重启之后,根据所记录的资源调整状态进行下一步的决策,以继续执行资源调整操作。
15.根据权利要求14所述的装置,其特征在于,所述资源调整请求中还包括时间戳,所述时间戳用于标记所述资源调整请求的时间信息,对应地,所述处理器在实现步骤若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点时包括:
判断所述资源请求中的时间戳是否小于执行所述判断步骤的时刻对应的时间戳;
若判断结果为是,则判断所述机器节点是否满足所述目标作业节点的资源调整需求;
若判断的结果为所述机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点。
16.根据权利要求14或15所述的装置,其特征在于,所述处理器在实现步骤若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点时包括:
判断所述机器节点上剩余的资源量是否满足所述目标作业节点所需增加的资源量;
若判断结果为是,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点。
17.根据权利要求16所述的装置,其特征在于,所述处理器在实现所述步骤判断所述机器节点上剩余的资源量是否满足所述目标作业节点所需增加的资源量之后,还包括:
若判断结果为否,则更新所述资源调整状态。
18.根据权利要求14或15所述的装置,其特征在于,所述处理器在实现步骤接收资源调整请求之后、步骤确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求之前,还包括:
确定所述目标作业节点需要增加资源量;
锁定所述机器节点上释放的部分或者全部资源量。
19.根据权利要求14或15所述的装置,其特征在于,所述处理器在实现步骤若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求时,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点时包括:
确定所述目标作业节点需要减少资源量;
更新所述资源调整状态,并发送调整资源的指令至所述机器节点;
锁定所述目标作业节点所需减少的资源量,直至接收到所述机器节点的资源调整成功的结果。
20.根据权利要求14所述的装置,其特征在于,所述处理器在实现步骤接收资源调整请求之后,还包括:
存储所述资源调整请求对应的信息,所述信息包括所述目标作业节点的请求调整前资源量、请求调整后资源量以及资源调整状态,其中,所述资源调整状态包括下述中的一种:资源管理器调整成功、资源管理器调整失败、机器节点调整成功、机器节点调整失败。
21.根据权利要求20所述的装置,其特征在于,所述处理器在实现步骤接收所述机器节点的资源调整结果之前,还包括:
所述资源管理器发生故障,则重启所述资源管理器,并在所述资源管理器重启之后获取存储的所述资源调整状态;
若获取到所述资源调整状态为资源管理器调整成功,则根据所述目标作业节点的所述请求调整前资源量和所述请求调整后资源量,判断是否在所述资源管理器上对所述目标作业节点完成资源调整;
若判断结果为是,则发送调整资源的指令至所述机器节点;否则,在所述资源管理器上对所述目标作业节点完成资源调整之后,发送调整资源的指令至所述机器节点。
22.根据权利要求20所述的装置,其特征在于,所述处理器在实现步骤接收所述机器节点的资源调整结果之前,还包括:
所述资源管理器发生故障,则重启所述资源管理器,并在所述资源管理器重启之后获取存储的所述资源调整状态;
若获取到所述资源调整状态为资源管理器调整失败,则发送资源调整失败的结果。
23.根据权利要求20所述的装置,其特征在于,所述处理器在实现步骤接收所述机器节点的资源调整结果之后,还包括:
所述资源管理器发生故障,则重启所述资源管理器,并在所述资源管理器重启之后获取存储的所述资源调整状态;
若获取到所述资源调整状态为机器节点调整成功,则根据所述目标作业节点的所述请求调整前资源量和所述请求调整后资源量,判断是否在所述资源管理器上对所述目标作业节点完成资源调整;
若判断结果为是,则发送机器节点资源调整成功的结果;否则,在所述资源管理器上对所述目标作业节点完成资源调整之后,发送机器节点资源调整成功的结果。
24.根据权利要求20所述的装置,其特征在于,所述处理器在实现步骤接收所述机器节点的资源调整结果之后,还包括:
所述资源管理器发生故障,则重启所述资源管理器,并在所述资源管理器重启之后获取存储的所述资源调整状态;
若获取到所述资源调整状态为机器节点调整失败,则根据所述目标作业节点的请求调整前资源量、请求调整后资源量,判断所述资源管理器上分配给所述目标作业节点的资源量是否为所述请求调整前资源量;
若判断结果为是,则发送机器节点资源调整失败的结果;否则,在所述资源管理器上将分配给所述目标作业节点的资源量恢复为所述请求调整前资源量之后,发送机器节点资源调整成功的结果。
25.根据权利要求14所述的装置,其特征在于,所述处理器在实现步骤若确定所述标识信息对应的机器节点满足所述目标作业节点的资源调整需求,则更新所述资源调整状态,并发送调整资源的指令至所述机器节点时包括:
确定所述标识信息对应的机器节点上剩余的资源量不满足所述目标作业节点所需增加的资源量;
获取所述机器节点上需要增加资源量的多个资源调整请求,所述资源调整请求中包括需要调整资源的作业节点的优先级以及所述作业节点已占用的资源量;
从优先级最低的作业节点开始,逐个释放所述作业节点已占用的资源量,直至所述机器节点上剩余的资源量满足所述目标作业节点所需增加的资源量;
更新所述资源调整状态,发送调整资源的指令至所述机器节点。
26.根据权利要求25所述的装置,其特征在于,所述处理器在实现步骤从优先级最低的作业节点开始,逐个释放所述作业节点已占用的资源量,直至所述机器节点上剩余的资源量满足所述目标作业节点所需增加的资源量之后,还包括:
确定所述机器节点上剩余的资源量在分配给所述目标作业节点所需的资源量之后,还剩余资源量;
将所述机器节点上剩余的资源量按照优先级从高至低的顺序分配给需要调整资源的作业节点。
27.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被执行时实现权利要求1至13中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810600412.7A CN110597614B (zh) | 2018-06-12 | 2018-06-12 | 一种资源调整方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810600412.7A CN110597614B (zh) | 2018-06-12 | 2018-06-12 | 一种资源调整方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110597614A CN110597614A (zh) | 2019-12-20 |
CN110597614B true CN110597614B (zh) | 2023-11-21 |
Family
ID=68848769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810600412.7A Active CN110597614B (zh) | 2018-06-12 | 2018-06-12 | 一种资源调整方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110597614B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597037B (zh) * | 2020-04-15 | 2023-06-16 | 中电金信软件有限公司 | 作业分配方法、装置、电子设备及可读存储介质 |
CN112073532B (zh) * | 2020-09-15 | 2022-09-09 | 北京火山引擎科技有限公司 | 一种资源分配的方法及装置 |
CN112162865B (zh) * | 2020-11-03 | 2023-09-01 | 中国工商银行股份有限公司 | 服务器的调度方法、装置和服务器 |
CN113391906B (zh) * | 2021-06-25 | 2024-03-01 | 北京字节跳动网络技术有限公司 | 作业更新方法、装置、计算机设备及资源管理系统 |
CN114138500B (zh) * | 2022-01-29 | 2022-07-08 | 阿里云计算有限公司 | 资源调度系统及方法 |
CN114756372A (zh) * | 2022-04-28 | 2022-07-15 | 北京百度网讯科技有限公司 | 用于负载均衡的方法、装置、设备和介质 |
CN115292006B (zh) * | 2022-09-02 | 2023-04-14 | 北京睿芯高通量科技有限公司 | 一种PaaS平台中的资源同步方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106572137A (zh) * | 2015-10-12 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种分布式服务资源管理方法和装置 |
WO2017128507A1 (zh) * | 2016-01-29 | 2017-08-03 | 中兴通讯股份有限公司 | 一种去中心化资源调度方法及系统 |
CN107291546A (zh) * | 2016-03-30 | 2017-10-24 | 华为技术有限公司 | 一种资源调度方法及装置 |
CN107450977A (zh) * | 2015-12-30 | 2017-12-08 | 北京典赞科技有限公司 | 基于yarn的面向gpgpu集群的资源管理调度方法 |
CN107491351A (zh) * | 2016-06-13 | 2017-12-19 | 阿里巴巴集团控股有限公司 | 一种基于优先级的资源分配方法、装置和设备 |
CN107809323A (zh) * | 2016-09-08 | 2018-03-16 | 中兴通讯股份有限公司 | 一种资源的控制方法、装置及系统 |
-
2018
- 2018-06-12 CN CN201810600412.7A patent/CN110597614B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106572137A (zh) * | 2015-10-12 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种分布式服务资源管理方法和装置 |
CN107450977A (zh) * | 2015-12-30 | 2017-12-08 | 北京典赞科技有限公司 | 基于yarn的面向gpgpu集群的资源管理调度方法 |
WO2017128507A1 (zh) * | 2016-01-29 | 2017-08-03 | 中兴通讯股份有限公司 | 一种去中心化资源调度方法及系统 |
CN107291546A (zh) * | 2016-03-30 | 2017-10-24 | 华为技术有限公司 | 一种资源调度方法及装置 |
CN107491351A (zh) * | 2016-06-13 | 2017-12-19 | 阿里巴巴集团控股有限公司 | 一种基于优先级的资源分配方法、装置和设备 |
CN107809323A (zh) * | 2016-09-08 | 2018-03-16 | 中兴通讯股份有限公司 | 一种资源的控制方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110597614A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597614B (zh) | 一种资源调整方法及装置 | |
CN107450979B (zh) | 一种区块链共识方法及装置 | |
CN107360206B (zh) | 一种区块链共识方法、设备及系统 | |
CN110647394B (zh) | 一种资源分配方法、装置及设备 | |
CN108228672B (zh) | 一种元数据迁移方法、装置、系统及设备 | |
CN107430528B (zh) | 机会性资源迁移以优化资源放置 | |
CN106293893B (zh) | 作业调度方法、装置及分布式系统 | |
CN108628688B (zh) | 一种消息处理方法、装置及设备 | |
CN107577523B (zh) | 一种任务执行的方法及装置 | |
CN109739627B (zh) | 任务的调度方法、电子设备及介质 | |
US11188387B2 (en) | Administrative resource management QoS for storage appliances | |
CN116305298B (zh) | 一种算力资源管理方法、装置、存储介质及电子设备 | |
Ungureanu et al. | Kubernetes cluster optimization using hybrid shared-state scheduling framework | |
CN113254223B (zh) | 一种系统重启后的资源分配方法、系统及相关组件 | |
CN110795234A (zh) | 一种资源调度方法及装置 | |
CN111459573B (zh) | 一种智能合约执行环境的启动方法以及装置 | |
CN111400032B (zh) | 一种资源分配的方法及装置 | |
CN111209079A (zh) | 一种基于鲲鹏处理器的调度方法、装置及介质 | |
CN115328608A (zh) | 一种Kubernetes容器垂直伸缩调节方法和装置 | |
US9672067B2 (en) | Data processing method and system with application-level information awareness | |
CN113806142A (zh) | 一种数据恢复方法、装置及相关设备 | |
CN113687935A (zh) | 一种基于超融合设计的云原生存储调度方式 | |
CN109614388B (zh) | 一种预算扣减方法和装置 | |
CN111258506A (zh) | 一种数据存储的方法及装置 | |
US11768704B2 (en) | Increase assignment effectiveness of kubernetes pods by reducing repetitive pod mis-scheduling |
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 |