CN109086135B - 资源伸缩方法、装置、计算机设备及存储介质 - Google Patents
资源伸缩方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109086135B CN109086135B CN201810834678.8A CN201810834678A CN109086135B CN 109086135 B CN109086135 B CN 109086135B CN 201810834678 A CN201810834678 A CN 201810834678A CN 109086135 B CN109086135 B CN 109086135B
- Authority
- CN
- China
- Prior art keywords
- adjustable
- instance
- condition
- copies
- expansion
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了资源伸缩方法、装置、计算机设备及存储介质,其中方法可包括:获取用户为所提交的作业配置的不同进程的实例副本数以及单个实例副本所需资源,进程包括:master进程、parameter server进程以及trainer进程,trainer进程包括最大实例副本数和最小实例副本数,所述作业为离线作业,离线作业与在线任务混合部署在***中;当按照所配置的实例副本数以及单个实例副本所需资源依次启动master进程和parameter server进程后,尝试按照最小实例副本数以及单个实例副本所需资源启动trainer进程;当每次满足触发条件时,从所提交的作业中选出符合调整条件的可调整作业,根据当前的***资源使用情况对可调整作业中的trainer实例副本进行扩容或缩容处理。应用本发明所述方案,能够提升资源利用率等。
Description
【技术领域】
本发明涉及计算机应用技术,特别涉及资源伸缩方法、装置、计算机设备及存储介质。
【背景技术】
目前,对于深度学习作业等,在提交具体的训练任务之前,通常需要先准确地预估出所需的资源总量,进而向分布式训练***(集群)提交任务,一次性的申请所有资源,等待资源充足时调度运行。
深度学习作业通常为离线作业,而除了离线作业,***中还可存在在线任务,即离线作业与在线任务可混合部署在***中。
这种情况下,通常采用静态资源分配方式,即采用静态划分***可使用资源的方式,以避免离线作业和在线任务资源竞争而影响在线任务的服务质量(QoS,Quality ofService),因为在线服务对于资源索取的优先级往往是高于离线作业的。
但是,这种方式在实际应用中也会存在一定的问题,比如:
1)在线任务的资源需求会随着服务访问流量的变化而变化,这样就经常会出现所分配的很多资源处于空闲状态的情况,从而造成了资源的浪费,降低了资源利用率;
2)对于深度学习作业等离线作业,只有当所需的资源总量能够满足要求时才会运行作业,否则,作业将一直处于挂起状态,直到释放了充足的资源,这样就会导致大量的高资源要求的离线作业阻塞在待调度队列中,这种等待无疑浪费了当前可用的计算资源,并且提高了离线作业因持续等待资源释放而“饿死”的概率,影响了离线作业的正常运行。
【发明内容】
有鉴于此,本发明提供了资源伸缩方法、装置、计算机设备及存储介质。
具体技术方案如下:
一种资源伸缩方法,包括:
获取用户为所提交的作业配置的不同进程的实例副本数以及单个实例副本所需资源,所述进程包括:master进程、parameter server进程以及trainer进程,其中,所述trainer进程包括最大实例副本数和最小实例副本数,所述作业为离线作业,所述离线作业与在线任务混合部署在***中;
当按照所配置的实例副本数以及单个实例副本所需资源依次启动所述master进程以及所述parameter server进程后,尝试按照所述最小实例副本数以及单个实例副本所需资源启动所述trainer进程;
当每次满足触发条件时,从所提交的作业中选出符合调整条件的可调整作业,并根据当前的***资源使用情况对所述可调整作业中的trainer实例副本进行扩容或缩容处理。
一种资源伸缩装置,包括:获取单元、启动单元以及伸缩单元;
所述获取单元,用于获取用户为所提交的作业配置的不同进程的实例副本数以及单个实例副本所需资源,所述进程包括:master进程、parameter server进程以及trainer进程,其中,所述trainer进程包括最大实例副本数和最小实例副本数,所述作业为离线作业,所述离线作业与在线任务混合部署在***中;
所述启动单元,用于当按照所配置的实例副本数以及单个实例副本所需资源依次启动所述master进程以及所述parameter server进程后,尝试按照所述最小实例副本数以及单个实例副本所需资源启动所述trainer进程;
所述伸缩单元,用于当每次满足触发条件时,从所提交的作业中选出符合调整条件的可调整作业,并根据当前的***资源使用情况对所述可调整作业中的trainer实例副本进行扩容或缩容处理。
一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
基于上述介绍可以看出,采用本发明所述方案,可根据***资源使用情况的变化,对离线作业占用的资源进行动态调整,从而避免了现有静态资源分配方式所带来的问题,提升了资源利用率,并尽可能地避免了离线作业因持续等待资源释放而“饿死”的情况的发生,确保了离线作业的正常运行等。
【附图说明】
图1为本发明所述资源伸缩方法实施例的流程图。
图2为本发明所述深度学习作业的运行框架示意图。
图3为本发明所述的单个作业的状态机的示意图。
图4为本发明所述扩容处理方法实施例的流程图。
图5为本发明所述缩容处理方法实施例的流程图。
图6为本发明所述资源伸缩装置实施例的组成结构示意图。
图7示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图。
【具体实施方式】
为了使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案进行进一步说明。
显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明所述资源伸缩方法实施例的流程图。如图1所示,包括以下具体实现方式。
在101中,获取用户为所提交的作业配置的不同进程的实例副本数以及单个实例副本所需资源,所述进程包括:master进程、parameter server进程以及trainer进程,其中,trainer进程包括最大实例副本数和最小实例副本数,所述作业为离线作业,离线作业与在线任务混合部署在***中。
在102中,当按照所配置的实例副本数以及单个实例副本所需资源依次启动master进程以及parameter server进程后,尝试按照最小实例副本数以及单个实例副本所需资源启动trainer进程。
在103中,当每次满足触发条件时,从所提交的作业中选出符合调整条件的可调整作业,并根据当前的***资源使用情况对可调整作业中的trainer实例副本进行扩容或缩容处理。
用户提交的作业可为深度学习作业,本实施例中,将用户提交的作业抽象成三种不同的进程,并封装在三种不同的容器内,这三种进程协同的消费数据并产生最终用户所需要的模型。
所述进程可包括:主控(master)进程、参数服务器(parameter server)进程以及训练器(trainer)进程。
如图2所示,图2为本发明所述深度学习作业的运行框架示意图。
其中,master进程的个数通常为一个,用于将作业数据切分成细粒度的数据分片,将这些数据分片打包成任务(task)并分发等。
trainer进程的个数通常为多个,用于从master进程获取数据分片,并计算这些数据分片产生的梯度等。
parameter server进程的个数通常为多个,每个parameter server进程持有全局模型的一个分片,并接收trainer进程所产生的梯度,重新计算梯度后将优化结果反馈给trainer进程等。
以web服务为代表的在线任务以及深度学习作业等离线作业可混合部署在***中,为了保证在线任务的QoS,在线任务的优先级通常高于离线作业。
图1所示实施例的执行主体可为Autoscaler,该实体为实现本实施例所述方案新增的实体。对于在线任务,可直接向***提交,***会优先分配其所需的资源,当资源不足时,任务处于挂起的状态,直到资源充足。对于用户提交的作业,在向***提交时,会被Autoscaler拦截,作业的资源请求不会直接提交给***,而是由Autoscaler处理后代为提交。
用户在提交作业时,可配置好master进程、parameter server进程以及trainer进程的实例副本数以及单个实例副本所需资源。
其中,master进程和parameter server进程的实例副本数均为固定的,而trainer进程的实例副本数是“弹性”的,可配置最大实例副本数和最小实例副本数。
通常来说,同类进程的单个实例副本所需资源相同,而不同类进程的单个实例副本所需资源可以相同,也可以不同。
Autoscaler会首先尝试按照master进程的实例副本数以及单个实例副本所需资源启动master进程,若资源充足,master实例副本进入运行状态,否则,可挂起并等待资源释放。master成功启动后,Autoscaler可尝试按照parameter server进程的实例副本数以及单个实例副本所需资源启动parameter server进程,若资源充足,parameter server实例副本进入运行状态,否则,可挂起并等待资源释放,直到全部parameter server实例副本均进入运行状态。
之后,Autoscaler可尝试按照最小实例副本数以及单个实例副本所需资源启动trainer进程,即可按照最小实例副本数以及单个实例副本所需资源向***请求资源,若资源充足,trainer实例副本进入运行状态,否则,可挂起等待。虽然Autoscaler尝试按照最小实例副本数启动trainer实例副本,但实际运行的trainer实例副本数可能等于最小实例副本数,也可能小于最小实例副本数,视资源是否充足而定,比如,最小实例副本数为3,实际运行的trainer实例副本数可能为3,也可能为2或1,甚至可能为0。
结合上述介绍,图3为本发明所述的单个作业的状态机的示意图。
当每次满足触发条件时,Autoscaler可从所提交的作业中选出符合调整条件的可调整作业,并根据当前的***资源使用情况对可调整作业中的trainer实例副本进行扩容或缩容处理。
较佳地,满足触发条件包括:每经过预定时长,则确定满足一次触发条件,即周期性地进行以下处理:从所提交的作业中选出符合调整条件的可调整作业,根据当前的***资源使用情况对可调整作业中的trainer实例副本进行扩容或缩容处理。
其中,若任一作业中的trainer进程配置了最大实例副本数以及最小实例副本数,且,该作业中***记录(***承认)的trainer实例副本均处于正常运行的状态,则可将该作业确定为可调整作业。也就是说,可调整作业需要满足两个条件:首先,可调度作业在提交时被标注为“弹性”,配置了trainer进程的最大实例副本数以及最小实例副本数,其次,为了避免波动,可调度作业需要满足“稳定”的特性,它的所有被***记录的trainer实例副本均处于正常运行的状态。
如前所述,Autoscaler可尝试按照最小实例副本数以及单个实例副本所需资源启动trainer进程,假设最小实例副本数为3,那么***记录的trainer实例副本数则为3,但实际运行的trainer实例副本数可能等于最小实例副本数,也可能小于最小实例副本数,如果小于最小实例副本数,那么就不符合“所有被***记录的trainer实例副本均处于正常运行的状态”的条件。
在从所提交的作业中选出符合调整条件的可调整作业之后,可根据当前的***资源使用情况对可调整作业中的trainer实例副本进行扩容或缩容处理。比如,可获取当前的***整体资源使用率,若获取到的***整体资源使用率小于预定阈值,则可对可调整作业中的trainer实例副本进行扩容处理,若获取到的***整体资源使用率大于所述阈值,则可对可调整作业中的trainer实例副本进行缩容处理。所述阈值的具体取值可根据实际需要而定。
以下分别对扩容处理以及缩容处理的具体实现进行说明。
图4为本发明所述扩容处理方法实施例的流程图。如图4所示,包括以下具体实现方式。
在401中,分别计算各可调整作业的完成度评分。
较佳地,针对每个可调整作业,可分别执行以下处理:
a1、计算该可调整作业中***记录的trainer实例副本数与最小实例副本数之差,得到第一差值;
a2、计算最大实例副本数与最小实例副本数之差,得到第二差值;
a3、计算第一差值与第二差值之商,得到该可调整作业的完成度评分。
其中,#curInstance表示***记录的trainer实例副本数,#minInstance表示最小实例副本数,#maxInstance表示最大实例副本数。
由上述计算方式可知,得分越高,说明对于这个作业,资源分配的越充足,反之越匮乏。
在402中,按照完成度评分对各可调整作业进行升序排序。
即按照完成度评分从小到大的顺序,对各可调整作业进行排序。
在403中,按照排序顺序,依次对每个可调整作业执行以下处理:确定该可调整作业是否符合扩容条件,若是,则为该可调整作业扩容一个trainer实例副本,否则,处理下一个可调整作业。
可以看出,将优先扩容排序靠前即资源分配相对匮乏的可调整作业。
在404中,当符合扩容停止条件时,结束扩容处理。
按照排序顺序,可依次确定每个可调整作业是否符合扩容条件,比如,确定可调整作业是否符合以下条件:扩容之后该可调整作业中***记录的trainer实例副本数未超过最大实例副本数,且,扩容之后***整体资源使用率未大于阈值,若是,则可确定该可调整作业符合扩容条件,若符合扩容条件,则可为该可调整作业扩容一个trainer实例副本,否则,可继续处理下一个可调整作业。
举例说明:
假设当前的***整体资源使用率为A,小于阈值;共存在5个可调整作业,按照排序顺序,分别为可调整作业1~可调整作业5;
其中,对于可调整作业1,若扩容一个trainer实例副本后,***记录的trainer实例副本数未超过最大实例副本数,而且,扩容之后***整体资源使用率(A+A1)未大于阈值,A1表示扩容的可调整作业1的trainer实例副本所需资源,那么则可确定可调整作业1符合扩容条件,相应地,可为可调整作业1扩容一个trainer实例副本;对于可调整作业2,若扩容一个trainer实例副本后,***记录的trainer实例副本数未超过最大实例副本数,但是扩容之后***整体资源使用率(A+A1+A2)大于阈值,A2表示扩容的可调整作业2的trainer实例副本所需资源,那么则可确定可调整作业2不符合扩容条件,进而不对可调整作业2进行扩容;对于可调整作业3,若扩容一个trainer实例副本后,***记录的trainer实例副本数未超过最大实例副本数,而且,扩容之后***整体资源使用率(A+A1+A3)未大于阈值,A3表示扩容的可调整作业3的trainer实例副本所需资源,那么则可确定可调整作业3符合扩容条件,相应地,可为可调整作业3扩容一个trainer实例副本,依此类推,直到符合扩容停止条件。
若对各可调整作业完成一轮处理之后,仍不符合扩容停止条件,可重复401-404所示的扩容处理过程,直到符合扩容停止条件。
符合扩容停止条件可以是指:不存在符合扩容条件的可调整作业。
不存在符合扩容条件的可调整作业,可以是指若再继续扩容任一可调整作业,则会导致***整体资源使用率大于阈值,也可以是指虽然***整体资源使用率未大于阈值,但已经不存在若扩容之后***记录的trainer实例副本数未超过最大实例副本数的可调整作业等。
图5为本发明所述缩容处理方法实施例的流程图。如图5所示,包括以下具体实现方式。
在501中,分别计算各可调整作业的完成度评分。
计算完成度评分的方式与401中相同,不再赘述。
在502中,按照完成度评分对各可调整作业进行降序排序。
即按照完成度评分从大到小的顺序,对各可调整作业进行排序。
在503中,按照排序顺序,依次对每个可调整作业执行以下处理:确定该可调整作业是否符合缩容条件,若是,则为该可调整作业缩容一个trainer实例副本,否则,处理下一个可调整作业。
可以看出,将优先缩容排序靠前即资源分配相对充足的可调整作业。
在504中,当符合缩容停止条件时,结束缩容处理。
按照排序顺序,可依次确定每个可调整作业是否符合缩容条件,比如,若缩容之后可调整作业中***记录的trainer实例副本数不小于最小实例副本数,则可确定该可调整作业符合缩容条件,相应地,可为该可调整作业缩容一个trainer实例副本,否则,可继续处理下一个可调整作业,直到符合缩容停止条件。
若对各可调整作业完成一轮处理之后,仍不符合缩容停止条件,可重复501-504所示的缩容处理过程,直到符合所述缩容停止条件。
符合缩容停止条件可以是指:***整体资源使用率小于阈值。
基于前述介绍可知,对于***记录的trainer实例副本数与实际运行的trainer实例副本数不相符的作业,不会作为可调整作业参与扩容和缩容处理,对于这类作业,当***资源出现剩余时,比如有在线任务或离线作业退出释放资源,或者,通过缩容处理出现剩余资源,可由***将资源调度给这类作业,并且,若这类作业的数量大于一,那么可按照向***请求资源的先后顺序,为这类作业调度资源。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
总之,采用本发明方法实施例所述方案,可根据***资源使用情况的变化,对离线作业占用的资源进行动态调整,从而避免了现有静态资源分配方式所带来的问题,提升了资源利用率,并尽可能地避免了离线作业因持续等待资源释放而“饿死”的情况的发生,确保了离线作业的正常运行等。
以上是关于方法实施例的介绍,以下通过装置实施例,对本发明所述方案进行进一步说明。
图6为本发明所述资源伸缩装置实施例的组成结构示意图。如图6所示,包括:获取单元601、启动单元602以及伸缩单元603。
获取单元601,用于获取用户为所提交的作业配置的不同进程的实例副本数以及单个实例副本所需资源,所述进程包括:master进程、parameter server进程以及trainer进程,其中,trainer进程包括最大实例副本数和最小实例副本数,所述作业为离线作业,离线作业与在线任务混合部署在***中。
启动单元602,用于当按照所配置的实例副本数以及单个实例副本所需资源依次启动master进程以及parameter server进程后,尝试按照最小实例副本数以及单个实例副本所需资源启动trainer进程。
伸缩单元603,用于当每次满足触发条件时,从所提交的作业中选出符合调整条件的可调整作业,并根据当前的***资源使用情况对可调整作业中的trainer实例副本进行扩容或缩容处理。
用户提交的作业可为深度学习作业,本实施例中,将用户提交的作业抽象成三种不同的进程,并封装在三种不同的容器内,这三种进程协同的消费数据并产生最终用户所需要的模型。
其中,master进程的个数通常为一个,用于将作业数据切分成细粒度的数据分片,将这些数据分片打包成task并分发等。
trainer进程的个数通常为多个,用于从master进程获取数据分片,并计算这些数据分片产生的梯度等。
parameter server进程的个数通常为多个,每个parameter server进程持有全局模型的一个分片,并接收trainer进程所产生的梯度,重新计算梯度后将优化结果反馈给trainer进程等。
以web服务为代表的在线任务以及深度学习作业等离线作业可混合部署在***中,为了保证在线任务的QoS,在线任务的优先级通常高于离线作业。
用户在提交作业时,可配置好master进程、parameter server进程以及trainer进程的实例副本数以及单个实例副本所需资源。
其中,master进程和parameter server进程的实例副本数均为固定的,而trainer进程的实例副本数是“弹性”的,可配置最大实例副本数和最小实例副本数。
启动单元602会首先尝试按照master进程的实例副本数以及单个实例副本所需资源启动master进程,若资源充足,master实例副本进入运行状态,否则,可挂起并等待资源释放,master成功启动后,可继续尝试按照parameter server进程的实例副本数以及单个实例副本所需资源启动parameter server进程,若资源充足,parameter server实例副本进入运行状态,否则,可挂起并等待资源释放,直到全部parameter server实例副本均进入运行状态。
之后,启动单元602可尝试按照最小实例副本数以及单个实例副本所需资源启动trainer进程,即可按照最小实例副本数以及单个实例副本所需资源向***请求资源,若资源充足,trainer实例副本进入运行状态,否则,可挂起等待。虽然Autoscaler尝试按照最小实例副本数启动trainer实例副本,但实际运行的trainer实例副本数可能等于最小实例副本数,也可能小于最小实例副本数,视资源是否充足而定。
当每次满足触发条件时,如每经过预定时长,则确定满足一次触发条件,伸缩单元603可从所提交的作业中选出符合调整条件的可调整作业,并根据当前的***资源使用情况对可调整作业中的trainer实例副本进行扩容或缩容处理。
其中,若任一作业中的trainer进程配置了最大实例副本数以及最小实例副本数,且,该作业中***记录的trainer实例副本均处于正常运行的状态,则可将该作业确定为可调整作业。
从所提交的作业中选出符合调整条件的可调整作业后,伸缩单元603可获取当前的***整体资源使用率,若***整体资源使用率小于预定阈值,则可对可调整作业中的trainer实例副本进行扩容处理,若***整体资源使用率大于所述阈值,则可对可调整作业中的trainer实例副本进行缩容处理。
具体地,伸缩单元603可执行以下扩容处理过程:分别计算各可调整作业的完成度评分;按照完成度评分对各可调整作业进行升序排序;按照排序顺序,依次对每个可调整作业执行以下处理:确定该可调整作业是否符合扩容条件,若是,则为该可调整作业扩容一个trainer实例副本,否则,处理下一个可调整作业;当符合扩容停止条件时,结束扩容处理。
其中,针对每个可调整作业,伸缩单元603可确定该可调整作业是否符合以下条件:扩容之后该可调整作业中***记录的trainer实例副本数未超过最大实例副本数,且,扩容之后***整体资源使用率未大于阈值,若是,则可确定该可调整作业符合扩容条件。
若对各可调整作业完成一轮处理之后,仍不符合扩容停止条件,伸缩单元603可重复上述扩容处理过程,直到符合扩容停止条件。
符合扩容停止条件可以是指:不存在符合扩容条件的可调整作业。
不存在符合扩容条件的可调整作业,可以是指若再继续扩容任一可调整作业,则会导致***整体资源使用率大于阈值,也可以是指虽然***整体资源使用率未大于阈值,但已经不存在若扩容之后***记录的trainer实例副本数未超过最大实例副本数的可调整作业等。
伸缩单元603可执行以下缩容处理过程:分别计算各可调整作业的完成度评分;按照完成度评分对各可调整作业进行降序排序;按照排序顺序,依次对每个可调整作业执行以下处理:确定该可调整作业是否符合缩容条件,若是,则为该可调整作业缩容一个trainer实例副本,否则,处理下一个可调整作业;当符合缩容停止条件时,结束缩容处理。
针对每个可调整作业,若缩容之后该可调整作业中***记录的trainer实例副本数不小于最小实例副本数,则伸缩单元603可确定该可调整作业符合缩容条件。
若对各可调整作业完成一轮处理之后,仍不符合缩容停止条件,则伸缩单元603可重复上述缩容处理过程,直到符合缩容停止条件。
符合缩容停止条件可以是指:***整体资源使用率小于阈值。
另外,针对每个可调整作业,伸缩单元603可分别按照以下方式计算出完成度评分:计算该可调整作业中***记录的trainer实例副本数与最小实例副本数之差,得到第一差值;计算最大实例副本数与最小实例副本数之差,得到第二差值;计算第一差值与第二差值之商,得到该可调整作业的完成度评分。
基于前述介绍可知,对于***记录的trainer实例副本数与实际运行的trainer实例副本数不相符的作业,不会作为可调整作业参与扩容和缩容处理,对于这类作业,当***资源出现剩余时,比如有在线任务或离线作业退出释放资源,或者,通过缩容处理出现剩余资源,可由***将资源调度给这类作业,并且,若这类作业的数量大于一,那么可按照向***请求资源的先后顺序,为这类作业调度资源。
图6所示装置实施例的具体工作流程请参照前述方法实施例中的相关说明,不再赘述。
总之,采用本发明装置实施例所述方案,可根据***资源使用情况的变化,对离线作业占用的资源进行动态调整,从而避免了现有静态资源分配方式所带来的问题,提升了资源利用率,并尽可能地避免了离线作业因持续等待资源释放而“饿死”的情况的发生,确保了离线作业的正常运行等。
图7示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图。图7显示的计算机***/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机***/服务器12以通用计算设备的形式表现。计算机***/服务器12的组件可以包括但不限于:一个或者多个处理器(处理单元)16,存储器28,连接不同***组件(包括存储器28和处理器16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机***/服务器12典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机***/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机***/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机***/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机***/服务器12交互的设备通信,和/或与使得该计算机***/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机***/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图7所示,网络适配器20通过总线18与计算机***/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机***/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理器16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现图1、图4或图5所示实施例中的方法。
本发明同时公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时将实现如图1、图4或图5所示实施例中的方法。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法等,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (22)
1.一种资源伸缩方法,其特征在于,包括:
获取用户为所提交的作业配置的不同进程的实例副本数以及单个实例副本所需资源,所述进程包括:master进程、parameter server进程以及trainer进程,其中,所述trainer进程包括最大实例副本数和最小实例副本数,所述作业为离线作业,所述离线作业与在线任务混合部署在***中;
当按照所配置的实例副本数以及单个实例副本所需资源依次启动所述master进程以及所述parameter server进程后,尝试按照所述最小实例副本数以及单个实例副本所需资源启动所述trainer进程;
当每次满足触发条件时,从所提交的作业中选出符合调整条件的可调整作业,并根据当前的***资源使用情况对所述可调整作业中的trainer实例副本进行扩容或缩容处理,包括:获取当前的***整体资源使用率;若所述***整体资源使用率小于预定阈值,则对所述可调整作业中的trainer实例副本进行扩容处理;若所述***整体资源使用率大于所述阈值,则对所述可调整作业中的trainer实例副本进行缩容处理。
2.根据权利要求1所述的方法,其特征在于,
所述满足触发条件包括:每经过预定时长,则确定满足一次触发条件。
3.根据权利要求1所述的方法,其特征在于,
所述从所提交的作业中选出符合调整条件的可调整作业包括:
若任一作业中的trainer进程配置了最大实例副本数以及最小实例副本数,且,所述作业中***记录的trainer实例副本均处于正常运行的状态,则将所述作业确定为可调整作业。
4.根据权利要求1所述的方法,其特征在于,
所述扩容处理过程包括:
分别计算各可调整作业的完成度评分;
按照完成度评分对各可调整作业进行升序排序;
按照排序顺序,依次对每个可调整作业执行以下处理:确定所述可调整作业是否符合扩容条件,若是,则为所述可调整作业扩容一个trainer实例副本,否则,处理下一个可调整作业;
当符合扩容停止条件时,结束扩容处理。
5.根据权利要求4所述的方法,其特征在于,
所述确定所述可调整作业是否符合扩容条件包括:
确定所述可调整作业是否符合以下条件:扩容之后所述可调整作业中***记录的trainer实例副本数未超过所述最大实例副本数,且,扩容之后所述***整体资源使用率未大于所述阈值,若是,则确定所述可调整作业符合扩容条件。
6.根据权利要求5所述的方法,其特征在于,
该方法进一步包括:若对各可调整作业完成一轮处理之后,仍不符合扩容停止条件,则重复所述扩容处理过程,直到符合所述扩容停止条件;
所述符合扩容停止条件包括:不存在符合扩容条件的可调整作业。
7.根据权利要求1所述的方法,其特征在于,
所述缩容处理过程包括:
分别计算各可调整作业的完成度评分;
按照完成度评分对各可调整作业进行降序排序;
按照排序顺序,依次对每个可调整作业执行以下处理:确定所述可调整作业是否符合缩容条件,若是,则为所述可调整作业缩容一个trainer实例副本,否则,处理下一个可调整作业;
当符合缩容停止条件时,结束缩容处理。
8.根据权利要求7所述的方法,其特征在于,
所述确定所述可调整作业是否符合缩容条件包括:
若缩容之后所述可调整作业中***记录的trainer实例副本数不小于所述最小实例副本数,则确定所述可调整作业符合缩容条件。
9.根据权利要求8所述的方法,其特征在于,
该方法进一步包括:若对各可调整作业完成一轮处理之后,仍不符合缩容停止条件,则重复所述缩容处理过程,直到符合所述缩容停止条件;
所述符合缩容停止条件包括:***整体资源使用率小于所述阈值。
10.根据权利要求4或7所述的方法,其特征在于,
所述分别计算各可调整作业的完成度评分包括:
针对每个可调整作业,分别执行以下处理:
计算所述可调整作业中***记录的trainer实例副本数与所述最小实例副本数之差,得到第一差值;
计算所述最大实例副本数与所述最小实例副本数之差,得到第二差值;
计算所述第一差值与所述第二差值之商,得到所述可调整作业的完成度评分。
11.一种资源伸缩装置,其特征在于,包括:获取单元、启动单元以及伸缩单元;
所述获取单元,用于获取用户为所提交的作业配置的不同进程的实例副本数以及单个实例副本所需资源,所述进程包括:master进程、parameter server进程以及trainer进程,其中,所述trainer进程包括最大实例副本数和最小实例副本数,所述作业为离线作业,所述离线作业与在线任务混合部署在***中;
所述启动单元,用于当按照所配置的实例副本数以及单个实例副本所需资源依次启动所述master进程以及所述parameter server进程后,尝试按照所述最小实例副本数以及单个实例副本所需资源启动所述trainer进程;
所述伸缩单元,用于当每次满足触发条件时,从所提交的作业中选出符合调整条件的可调整作业,并根据当前的***资源使用情况对所述可调整作业中的trainer实例副本进行扩容或缩容处理,包括:获取当前的***整体资源使用率,若所述***整体资源使用率小于预定阈值,则对所述可调整作业中的trainer实例副本进行扩容处理,若所述***整体资源使用率大于所述阈值,则对所述可调整作业中的trainer实例副本进行缩容处理。
12.根据权利要求11所述的装置,其特征在于,
所述满足触发条件包括:每经过预定时长,则确定满足一次触发条件。
13.根据权利要求11所述的装置,其特征在于,
若任一作业中的trainer进程配置了最大实例副本数以及最小实例副本数,且,所述作业中***记录的trainer实例副本均处于正常运行的状态,则所述伸缩单元将所述作业确定为可调整作业。
14.根据权利要求11所述的装置,其特征在于,
所述伸缩单元执行以下扩容处理过程:
分别计算各可调整作业的完成度评分;
按照完成度评分对各可调整作业进行升序排序;
按照排序顺序,依次对每个可调整作业执行以下处理:确定所述可调整作业是否符合扩容条件,若是,则为所述可调整作业扩容一个trainer实例副本,否则,处理下一个可调整作业;
当符合扩容停止条件时,结束扩容处理。
15.根据权利要求14所述的装置,其特征在于,
所述伸缩单元确定所述可调整作业是否符合以下条件:扩容之后所述可调整作业中***记录的trainer实例副本数未超过所述最大实例副本数,且,扩容之后所述***整体资源使用率未大于所述阈值,若是,则确定所述可调整作业符合扩容条件。
16.根据权利要求15所述的装置,其特征在于,
所述伸缩单元进一步用于,若对各可调整作业完成一轮处理之后,仍不符合扩容停止条件,则重复所述扩容处理过程,直到符合所述扩容停止条件;
所述符合扩容停止条件包括:不存在符合扩容条件的可调整作业。
17.根据权利要求11所述的装置,其特征在于,
所述伸缩单元执行以下缩容处理过程:
分别计算各可调整作业的完成度评分;
按照完成度评分对各可调整作业进行降序排序;
按照排序顺序,依次对每个可调整作业执行以下处理:确定所述可调整作业是否符合缩容条件,若是,则为所述可调整作业缩容一个trainer实例副本,否则,处理下一个可调整作业;
当符合缩容停止条件时,结束缩容处理。
18.根据权利要求17所述的装置,其特征在于,
若缩容之后可调整作业中***记录的trainer实例副本数不小于所述最小实例副本数,则所述伸缩单元确定所述可调整作业符合缩容条件。
19.根据权利要求18所述的装置,其特征在于,
所述伸缩单元进一步用于,若对各可调整作业完成一轮处理之后,仍不符合缩容停止条件,则重复所述缩容处理过程,直到符合所述缩容停止条件;
所述符合缩容停止条件包括:***整体资源使用率小于所述阈值。
20.根据权利要求14或17所述的装置,其特征在于,
所述伸缩单元针对每个可调整作业,分别执行以下处理:
计算所述可调整作业中***记录的trainer实例副本数与所述最小实例副本数之差,得到第一差值;
计算所述最大实例副本数与所述最小实例副本数之差,得到第二差值;
计算所述第一差值与所述第二差值之商,得到所述可调整作业的完成度评分。
21.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~10中任一项所述的方法。
22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810834678.8A CN109086135B (zh) | 2018-07-26 | 2018-07-26 | 资源伸缩方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810834678.8A CN109086135B (zh) | 2018-07-26 | 2018-07-26 | 资源伸缩方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109086135A CN109086135A (zh) | 2018-12-25 |
CN109086135B true CN109086135B (zh) | 2021-10-26 |
Family
ID=64830833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810834678.8A Active CN109086135B (zh) | 2018-07-26 | 2018-07-26 | 资源伸缩方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109086135B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021212967A1 (en) * | 2020-04-24 | 2021-10-28 | Huawei Technologies Co., Ltd. | Task scheduling for distributed data processing |
CN112199194B (zh) * | 2020-10-14 | 2024-04-19 | 广州虎牙科技有限公司 | 基于容器集群的资源调度方法、装置、设备和存储介质 |
CN113296883B (zh) * | 2021-02-22 | 2023-08-04 | 阿里巴巴集团控股有限公司 | 应用管理方法和装置 |
CN113391921B (zh) * | 2021-06-16 | 2023-04-28 | 浪潮云信息技术股份公司 | 一种应用实例的资源配额校验方法 |
CN113377500B (zh) * | 2021-08-12 | 2021-12-14 | 浙江大华技术股份有限公司 | 一种资源调度方法、装置、设备及介质 |
CN113791885A (zh) * | 2021-09-18 | 2021-12-14 | 上海中通吉网络技术有限公司 | 根据应用类型自动调度离线应用的方法 |
CN115379000B (zh) * | 2022-10-26 | 2023-03-24 | 小米汽车科技有限公司 | 服务平台的扩容方法、装置、电子设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580524A (zh) * | 2015-01-30 | 2015-04-29 | 华为技术有限公司 | 一种云平台上的资源伸缩方法和一种云平台 |
CN104636421A (zh) * | 2013-11-08 | 2015-05-20 | 洛克威尔自动控制技术股份有限公司 | 使用云计算的工业监视 |
CN106484528A (zh) * | 2016-09-07 | 2017-03-08 | 北京百度网讯科技有限公司 | 分布式框架中用于实现集群动态伸缩的方法及装置 |
CN107682409A (zh) * | 2017-09-13 | 2018-02-09 | 厦门集微科技有限公司 | 一种集群资源预伸缩方法及装置 |
CN107908461A (zh) * | 2017-12-01 | 2018-04-13 | 广东电网有限责任公司佛山供电局 | 一种基于Docker的资源动态伸缩装置及实现方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103686218B (zh) * | 2012-09-18 | 2016-12-21 | 中国科学院声学研究所 | 一种MIMO‑OFDM***下基于QoE的跨层优化视频传输方法及*** |
CN104754008B (zh) * | 2013-12-26 | 2019-03-08 | 伊姆西公司 | 网络存储节点、网络存储***以及用于网络存储节点的装置和方法 |
US10057308B2 (en) * | 2015-04-30 | 2018-08-21 | Adobe Systems Incorporated | Customizable reproduction of electronic meetings |
-
2018
- 2018-07-26 CN CN201810834678.8A patent/CN109086135B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636421A (zh) * | 2013-11-08 | 2015-05-20 | 洛克威尔自动控制技术股份有限公司 | 使用云计算的工业监视 |
CN104580524A (zh) * | 2015-01-30 | 2015-04-29 | 华为技术有限公司 | 一种云平台上的资源伸缩方法和一种云平台 |
CN106484528A (zh) * | 2016-09-07 | 2017-03-08 | 北京百度网讯科技有限公司 | 分布式框架中用于实现集群动态伸缩的方法及装置 |
CN107682409A (zh) * | 2017-09-13 | 2018-02-09 | 厦门集微科技有限公司 | 一种集群资源预伸缩方法及装置 |
CN107908461A (zh) * | 2017-12-01 | 2018-04-13 | 广东电网有限责任公司佛山供电局 | 一种基于Docker的资源动态伸缩装置及实现方法 |
Non-Patent Citations (1)
Title |
---|
一文读懂百度PaddlePaddle EDL技术;技术小能手;《https://developer.aliyun.com/article/292630》;20171218;正文第1-10页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109086135A (zh) | 2018-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109086135B (zh) | 资源伸缩方法、装置、计算机设备及存储介质 | |
Delgado et al. | Kairos: Preemptive data center scheduling without runtime estimates | |
US10552213B2 (en) | Thread pool and task queuing method and system | |
US9947068B2 (en) | System and method for GPU scheduling | |
CN108205469B (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
CN109840149B (zh) | 任务调度方法、装置、设备及存储介质 | |
KR101770191B1 (ko) | 자원 할당 방법 및 그 장치 | |
WO2019037626A1 (zh) | 一种分布式***资源分配方法、装置及*** | |
US8539495B2 (en) | Recording medium storing therein a dynamic job scheduling program, job scheduling apparatus, and job scheduling method | |
CN106775948B (zh) | 一种基于优先级的云任务调度方法及装置 | |
CN111124254B (zh) | 调度存储空间回收请求的方法、电子设备和程序产品 | |
JP4912927B2 (ja) | タスク割当装置、及びタスク割当方法 | |
CN111104210A (zh) | 一种任务处理方法、装置及计算机*** | |
CN110716800B (zh) | 任务调度方法及装置、存储介质及电子设备 | |
CN109491775B (zh) | 一种用于边缘计算环境下的任务处理与调度方法 | |
US20180191861A1 (en) | Method and Apparatus for Scheduling Resources in a Cloud System | |
CN111625367B (zh) | 一种动态调整文件***读写资源的方法 | |
CN112148468A (zh) | 一种资源调度方法、装置、电子设备及存储介质 | |
CN106201665A (zh) | 一种动态队列布置方法及设备 | |
CN110780991B (zh) | 一种基于优先级的深度学习任务调度方法及装置 | |
CN114489942B (zh) | 一种面向应用集群的队列任务调度方法及*** | |
US9740530B2 (en) | Decreasing the priority of a user based on an allocation ratio | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
EP3550421A1 (en) | Storage controller and io request processing method |
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 |