CN114020468A - 基于gpu指标的算法容器弹性伸缩方法、装置及其应用 - Google Patents
基于gpu指标的算法容器弹性伸缩方法、装置及其应用 Download PDFInfo
- Publication number
- CN114020468A CN114020468A CN202111320766.4A CN202111320766A CN114020468A CN 114020468 A CN114020468 A CN 114020468A CN 202111320766 A CN202111320766 A CN 202111320766A CN 114020468 A CN114020468 A CN 114020468A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- gpu
- container
- expected
- index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/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/505—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 load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提出了一种基于GPU指标的算法容器弹性伸缩方法,包括:获取算法应用占用算法容器的占用算法容器数、算法应用的伸缩条件,以及获取所有被占用的算法容器的GPU利用率计算平均值得到GPU平均利用率,伸缩条件中设置有第一期望指标和第二期望指标;若GPU平均利用率满足伸缩条件,根据GPU平均利用率和占用算法容器数、第一期望指标或第二期望指标计算期望算法容器数;将算法应用的占用算法容器数修改为期望算法容器数。该方法通过根据算法应用的GPU平均利用率、占用算法容器数、以及设定的伸缩条件计算出期望算法容器数,并根据期望算法容器数增加或减少算法应用占用的算法容器的容器数量,实现动态调整算法应用占用的算法容器的容器数量。
Description
技术领域
本申请涉及云计算技术领域,特别是涉及一种基于GPU指标的算法容器弹性伸缩方法、装置及其应用。
背景技术
在传统的物理服务器时代,为了应对不断变化的业务请求流量,通常在高峰期会部署较多的物理服务器来进行处理,而在流量低谷期时,过多的闲置物理服务器会造成资源浪费,又无法迅速回收那些闲置的物理服务器。
近年来随着云计算技术的发展,特别是容器相关技术,例如Docker和Kubernetes技术已经成为众多企业应用交付的标准。在Kubernetes环境中,应用占用的容器数量的弹性伸缩变得更加灵活,Kubernetes环境默认提供了基于CPU和内存指标的自动伸缩器,通过配置伸缩条件和伸缩规则,可以让应用占用的容器数量进行简单的弹性伸缩,也就是说,可根据CPU和内存指标自动调整占用的容器数量。但更为复杂的伸缩规则就需要扩展云平台中的相关功能来实现,否则无法直接通过GPU定自定义指标实现弹性伸缩。
具体而言,在原生的Kubernetes容器云平台中,算法应用主要用GPU显存来运行,其中算法应用指的是运行了在内部运行算法程序的容器,而运行该算法应用的算法容器在高负载请求的场景下,已有的算法容器无法满足业务需求,需要根据GPU利用率增加一定数量算法容器的数量,以及在低负载请求的场景下出现该算法应用占用的算法容器中有闲置的算法容器时,可根据GPU利用率减少一定数量的算法容器。
发明内容
本申请实施例提供了一种基于GPU指标的算法容器弹性伸缩方法、装置及其应用,该方法通过监控容器云平台中算法应用占用的每一算法容器的GPU利用率,根据设置的伸缩条件自动计算期望算法容器数,实现了自动增加以及减少该算法应用的占用算法容器数。
第一方面,本申请实施例提供了一种基于GPU指标的算法容器弹性伸缩方法,应用于容器云平台,所述容器云平台中包括至少一GPU服务器,每一所述GPU服务器上部署至少一算法容器,算法应用部署于所述容器云平台上占用至少一所述算法容器,该方法包括以下步骤:
获取所述算法应用占用所述算法容器的占用算法容器数、所述算法应用的伸缩条件,以及获取所有被占用的所述算法容器的GPU利用率计算平均值得到GPU平均利用率,所述伸缩条件中设置有第一期望指标和第二期望指标;
若所述GPU平均利用率满足所述伸缩条件,根据所述GPU平均利用率和所述占用算法容器数、所述第一期望指标或所述第二期望指标计算期望算法容器数;
将所述算法应用的所述占用算法容器数修改为所述期望算法容器数。
在一些申请实施例中,所述伸缩条件为当所述GPU平均利用率超出所述第一期望指标对所述算法应用进行扩容,和/或当所述GPU平均利用率低于所述第二期望指标对所述算法应用进行缩容。
在一些申请实施例中,设置对应所述第一期望指标的第一时长阈值,对应所述第二指标的第二时长阈值;所述伸缩条件为当所述GPU平均利用率保持超过所述第一期望指标达到所述第一时长阈值进行扩容,和/或当所述GPU平均利用率保持低于所述第二期望指标达到所述第二时长阈值进行缩容。
在一些申请实施例中,在进行扩容时,所述期望算法容器数为所述GPU平均利用率与所述第一期望指标的比值乘以所述占用算法容器数并向上取整;在进行缩容时,所述期望算法容器数为所述GPU平均利用率与所述第一期望指标的比值乘以所述占用算法容器数并向下取整。
在一些申请实施例中,所述算法应用设有伸缩规则,所述伸缩规则包括最大容器数和最小容器数;当所述期望算法容器数大于所述最大容器数时,将所述期望算法容器数修改为所述最大容器数;当所述期望算法容器数小于所述最大容器数时,将所述期望算法容器数修改为所述最小容器数。
在一些申请实施例中,在所述容器云平台的每一所述GPU服务器上部署采集客户端,用于采集每一所述算法容器的GPU利用率。
在一些申请实施例中,所述容器云平台上定义弹性伸缩控制器和GPU数据监控模块,其中所述GPU数据监控模块用于获取所述采集客户端的GPU利用率,所述弹性伸缩控制器用于为所述算法应用创建自动伸缩器和计算所述期望算法容器数,所述自动伸缩器用于与所述容器云平台用于将所述占用算法容器数修改为所述期望算法容器数。
在一些申请实施例中,所述弹性伸缩控制器还用于创建轮询组件,控制所述GPU数据监控模块每间隔设定时间获取对应所述算法应用的所有所述算法容器的GPU利用率。
第二方面,本申请实施例提供了一种基于GPU指标的算法容器弹性伸缩装置,用于实现第一方面中所述的基于GPU指标的算法容器弹性伸缩方法,应用于容器云平台,所述容器云平台中包括至少一GPU服务器,每一所述GPU服务器上部署至少一算法容器,算法应用部署于所述容器云平台上占用至少一所述算法容器,该装置包括以下模块:
获取模块,用于获取所述算法应用占用所述算法容器的占用算法容器数、所述算法应用的伸缩条件,以及获取所有被占用的所述算法容器的GPU利用率计算平均值得到GPU平均利用率,所述伸缩条件中设置有第一期望指标和第二期望指标;
计算模块,若所述GPU平均利用率满足所述伸缩条件,用于根据所述GPU平均利用率和所述占用算法容器数、所述第一期望指标或所述第二期望指标计算期望算法容器数;
伸缩模块,用于将所述算法应用的所述占用算法容器数修改为所述期望算法容器数。
第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以如上任意申请实施例所述的基于GPU指标的算法容器弹性伸缩方法。
第四方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述软件代码部分用于执行如上任一申请实施例所述的基于GPU指标的算法容器弹性伸缩方法。
第五方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据如上任意申请实施例所述的基于GPU指标的算法容器弹性伸缩方法。
本申请实施例的主要贡献和创新点如下:
本申请实施例提供了一种基于GPU指标的算法容器弹性伸缩方法、装置及其应用,该方法通过根据算法应用占用的算法容器的GPU平均利用率、当前的占有算法容器数、以及设定的伸缩条件中的第一期望指标或者第二期望指标计算出期望算法容器数,并根据期望算法容器数增加或减少算法应用占用的算法容器的容器数量,实现自动根据GPU平均利用率动态调整算法应用占用的算法容器的容器数量。
为了实现该效果,本方案设有自定义的弹性伸缩控制器,该自定义的弹性伸缩控制器可用于生成新的自动伸缩器,在GPU平均利用率到达配置临界点的情况下,计算出当前场景下的伸缩对象的期望算法容器数,使用自动伸缩器来与Kubernetes的API服务器进行交互以修改占用算法容器数,增加到期望算法容器数或伸缩对象配置的最大容器数;同时,也可以在GPU平均利用率下降到配置临界点后的一段时间内,同样计算出当前场景下的期望算法容器数,使用自动伸缩器与Kubernetes的API服务器进行交互,减少容器数量,逐渐减少到期望算法容器数或预先配置的最小容器数,不仅扩展了原有Kubernetes平台中容器弹性伸缩方面的局限性,同时也提升了Kubernetes平台中算法容器应用服务的可靠性以及平台的整体资源使用率。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的基于GPU指标的算法容器弹性伸缩方法的流程图;
图2是根据本申请实施例的容器云平台的结构示意图;
图3是根据本申请实施例的基于GPU指标的算法容器弹性伸缩方法的结构框图;
图4是根据本申请实施例的电子装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
实施例一
本实施例提供了一种基于GPU的算法容器弹性伸缩方法,应用于容器云平台,也就是要应用于在Kubernetes环境中,因此在本实施例中,先部署一个Kubernetes容器云平台。为了统一下文中对名字的理解,本申请人先对该方案可能涉及到的名称进行解释:
Docker:Docker是一个开源软件,用于开发、交付和运行应用。
容器:一个通过Docker镜像创建的运行时实例,一个节点可运行多个容器。
算法容器:指基于算法应用场景构建的Docker容器,通常需要使用GPU显卡运行一个具体的算法应用,处理相关请求。
Kubernetes:Kubernetes是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。
Pod:Pod是Kubernetes中可以创建和部署的最小也是最简的单位。Pod代表着集群中运行的进程。Pod中封装着应用的容器(有的情况下是好几个容器),存储、独立的网络IP,管理容器如何运行的策略选项。
HPA:Pod水平自动扩缩。基于系统或者自定义指标自动增加或减少Kubernetes平台中的Pod数量。
由于是专门针对算法应用构建的容器云平台,所以该容器云平台的每一个工作节点需要用带有多块显卡的GPU服务器,也就是说该容器云平台包括至少一GPU服务器,每一个GPU服务器上带有至少一GPU显卡,每一个GPU显卡可以看做是一个能够应用算法程序的容器,因此相当于每一个GPU服务器上部署了至少一个算法容器。
当某一个算法应用部署于该容器云平台时,至少需要占用一个算法容器。但当该算法应用在高负载请求场景下,单个算法容器无法满足的业务需求,就需要增加算法容器的数量;当该算法应用在扩容后的一段时间内又处于低负载请求场景时,可以通过减少占用的算法容器的数量,以回收处多余的计算资源供其他应用使用。
为了实现本方案的算法容器弹性伸缩方法,本方案创设一个基于GPU指标的容器弹性伸缩组件,所述容器弹性伸缩组件包括弹性伸缩控制器和监控GPU数据模块,所述弹性伸缩控制器用于生成自动伸缩器对象以及根据GPU数据计算出期望算法容器数,所述监控GPU数据模块用于抓取采集客户端暴露的显卡信息并和弹性伸缩控制器进行数据交互。弹性伸缩控制器生成的对象为自动伸缩器(HPA),所述自动伸缩器用于与容器平台的API服务器交互,以请求修改或减少伸缩对象的容器副本数量以达到弹性伸缩的目的。另外,本方案可通过配置伸缩规则来调整触发算法容器伸缩场景的条件和对象,扩大方案的适用性。
具体地,参考图1,所述方法包括步骤S1-S3:
步骤S1:获取所述算法应用占用所述算法容器的占用算法容器数、所述算法应用的伸缩条件,以及获取所有被占用的所述算法容器的GPU利用率计算平均值得到GPU平均利用率,所述伸缩条件中设置有第一期望指标和第二期望指标,。
在该步骤中,先从该容器云平台中获取该算法应用当前占用的算法容器的容器数量作为占用算法容器数和对应该算法应用的伸缩条件,以及获取所有被占用的算法容器的GPU利用率计算平均值得到该算法应用的GPU平均利用率。
具体的,例如某算法应用占用的算法容器为A、B、C,算法容器A的GPU利用率为A1,算法容器B的GPU利用率为B1,算法容器C的GPU利用率为C1,则该算法应用的GPU平均利用率为(A1+B1+C1)/3。
另外,还可以对该算法应用设置相应的伸缩规则,具体的,可以在伸缩规则中设置该算法应用扩容后和缩容后的限制,比如设置扩容后的最大容器数和缩容后的最小容器数。因此,在一些实施例中,所述算法应用设有伸缩规则,所述伸缩规则包括所述算法应用的最大容器数和最小容器数。
值得一提的是:本实施例的步骤S1可以设置成轮询执行模式,也就是说每间隔设定时长就执行一次步骤S1,定时检查算法应用的GPU平均利用率是否触发伸缩条件,这样做的好处是不用一直获取和计算各种数据,可以节省一定的计算资源。
步骤S2:若所述GPU平均利用率满足所述伸缩条件,根据所述GPU平均利用率和所述占用算法容器数、所述第一期望指标或所述第二期望指标计算期望算法容器数。
其中,伸缩条件是在部署该算法应用时会设置的,该伸缩条件中主要设置了第一期望指标和第二期望指标,如果该算法应用的GPU平均利用率超出第一期望指标,表示目前算法容器的容器数量不太能满足计算需求,因此需要进行扩容;若该算法应用的GPU平均利用率低于第二期望指标,表示目前算法容器的容器数量富余,因此需要进行缩容,可以将多余的算法容器节约出来,以节省不必要的计算资源。
因此,当该算法应用的GPU平均利用率超出第一期望指标,根据该算法应用的GPU平均利用率、占用算法容器数以及第一期望指标计算期望算法容器数;当该算法应用的GPU平均利用率低于第二期望指标,根据该算法应用的GPU平均利用率、占用算法容器数以及第二期望指标计算期望算法容器数;最后根据期望算法容器数对该算法应用进行扩容或者缩容。
一般第一期望指标大于第二期望指标,也就是说,当该算法应用的GPU平均利用率保持在第一期望指标和第二期望指标之间时,不需要进行扩容或缩容。特别的是,第一期望指标和第二期望指标也可以相等。因此,在一些实施例中,所述伸缩条件为当所述GPU平均利用率超出所述第一期望指标对所述算法应用进行扩容,和/或当所述GPU平均利用率低于所述第二期望指标对所述算法应用进行缩容。
具体的,在一些实施例中,当GPU平均利用率超过第一期望指标时,计算期望算法容器数的方法为用GPU平均利用率与第一期望指标的比值乘以该算法应用当前占用的容器数量,最后向上取整;或者当GPU平均利用率低于第二期望指标时,计算期望算法容器数的方法为用GPU平均利用率与第一期望指标的比值乘以该算法应用当前占用的容器数量,最后向下取整。
例如,第一期望指标为70%,但GPU平均利用率已经达到了80%,该算法应用当前占用的容器数量为1,那么期望算法容器数就为2。再例如,第二期望指标为70%,但GPU平均利用率为50%,该算法应用当前占用的容器数量为2,那么计算得到的期望算法容器数为1。
进一步的,对算法应用在扩容和缩容时还可以设置附加条件,比如GPU平均利用率超出第一期望指标达到一定时长,或者平均值低于第二期望指标达到一定时长,确保算法应用占用的每个算法容器GPU利用率稳定后再判断是否需要进行扩容或缩容。因此,在一些实施例中,伸缩条件还包括对应第一期望指标的第一时长阈值和对应第二期望指标的第二时长阈值,也就是说,当GPU平均利用率保持超出第一期望指标达到第一时长阈值进行扩容,当GPU平均利用率保持低于第二期望指标达到第二时长阈值进行缩容。
另外,如果该算法应用还设置了伸缩规则,可以在步骤S1中获取到对应的伸缩规则。例如,伸缩规则中包括了最大容器数和最小容器数,当计算出的期望算法容器数大于最大容器数时,将期望算法容器数修改为最大容器数,当计算出的期望算法容器数小于最小容器数时,将期望算法容器数修改为最小容器数。因此,在一些实施例中,当期望算法容器数大于最大容器数时,所述期望算法容器数等于所述最大容器数;当期望算法容器数小于最小容器数时,所述期望算法容器数等于所述最小容器数。
步骤S3:将所述算法应用的所述占用算法容器数修改为所述期望算法容器数。
在该步骤中,根据期望算法容器数修改算法应用占用的算法容器的数量,也就是修改步骤S1中获得占用算法容器数。
如图2所示,本实施例在具体的应用场景中,在该容器云平台中的每个GPU服务器上部署一个可以收集GPU显卡数据的客户端,可以把正在使用中的GPU显卡的数据信息组织成约定的格式暴露出去。也就是说,当某些算法容器上部署了算法应用时,可以通过该客户端获取到该算法应用占用的所有算法容器的相关数据,比如最重要的GPU利用率。因此,在一些实施例中,在每一所述GPU服务器上部署采集客户端,用于收集GPU利用率。
并且还自定义了一个弹性伸缩组件,该组件包括弹性伸缩控制器和GPU数据监控模块。其中,GPU数据监控模块就是通过上述采集客户端获取算法容器的GPU利用率,弹性伸缩控制器用于根据算法应用占用的所有算法容器的GPU利用率计算平均值得到GPU平均利用率,并将GPU平均利用率满足伸缩条件的算法应用作为为操作对象,计算出期望算法容器数后对该操作对象进行扩容或缩容。
具体的,弹性伸缩控制器用于根据GPU数据监控模块通过采集客户端获取到的某算法应用占用的每个算法容器上的GPU利用率,计算该算法应用占用的所有算法容器的GPU利用率计算平均值得到GPU平均利用率。
弹性伸缩控制器一方面在获取到该算法应用的伸缩条件和伸缩规则后,将该算法应用作为操作对象,并为该操作对象创建自动伸缩器,以及计算出该操作对象的期望算法容器数;另一方面,还可以创建一个轮询组件,如果伸缩规则中加入了轮询规则,例如轮询规则为每间隔5秒采集一次GPU利用率,那么该轮询组件则每间隔5秒就根据GPU数据监控模块采集到的GPU利用率计算GPU平均利用率,判断是否满足伸缩条件。若满足伸缩条件,则根据计算出的期望算法容器数修改该算法应用占用的算法容器的容器数量,容器云平台通过自带的list-watch机制自动增加或减少算法应用的容器数量,实现弹性扩容、缩容的功能。
其中,伸缩条件和伸缩规则生成为自定义的Kubernetes扩展对象集成到该容器云平台中,所述扩展对象将与弹性伸缩控制器进行交互。自动伸缩器用于和容器云平台的API服务器进行交互,调整其占用的容器数量。
实施例二
基于相同的构思,本实施例还提供了一种基于GPU指标的算法容器弹性伸缩装置,用于实现实施例一中所描述的基于GPU指标的算法容器弹性伸缩方法,具体参考图3,图3是根据本申请实施例的基于GPU指标的算法容器弹性伸缩装置的结构框图,如图3所示,该装置包括:
获取模块,用于获取所述算法应用占用所述算法容器的占用算法容器数、所述算法应用的伸缩条件,以及获取所有被占用的所述算法容器的GPU利用率计算平均值得到GPU平均利用率,所述伸缩条件中设置有第一期望指标和第二期望指标;
计算模块,若所述GPU平均利用率满足所述伸缩条件,用于根据所述GPU平均利用率和所述占用算法容器数、所述第一期望指标或所述第二期望指标计算期望算法容器数;
伸缩模块,用于将所述算法应用的所述占用算法容器数修改为所述期望算法容器数。
实施例三
本实施例还提供了一种电子装置,参考图4,包括存储器404和处理器402,该存储器404中存储有计算机程序,该处理器402被设置为运行计算机程序以执行上述实施例一中的任意一种基于GPU指标的算法容器弹性伸缩方法的步骤。
具体地,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器404可以包括用于数据或指令的大容量存储器404。举例来说而非限制,存储器404可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(Solid State Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerial Bus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器404可在数据处理装置的内部或外部。在特定实施例中,存储器404是非易失性(Non-Volatile)存储器。在特定实施例中,存储器404包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(Random Access Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable Programmable Read-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable Programmable Read-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-Only Memory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random AccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器404(Fast PageMode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic Random Access Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器404可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的计算机程序指令。
处理器402通过读取并执行存储器404中存储的计算机程序指令,以实现上述实施例中的任意一种基于GPU指标的算法容器弹性伸缩方法。
可选地,上述电子装置还可以包括传输设备406以及输入输出设备408,其中,该传输设备406和上述处理器402连接,该输入输出设备408和上述处理器402连接。
传输设备406可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备408用于输入或输出信息。在本实施例中,输入的信息可以是当前数据表例如疫情流调文档、特征数据、模板表等,输出的信息可以是特征指纹、指纹模板、文本分类推荐信息、文件模板配置映射表、文件模板配置信息表等。
可选地,在本实施例中,上述处理器402可以被设置为通过计算机程序执行以下步骤:
获取所述算法应用占用所述算法容器的占用算法容器数、所述算法应用的伸缩条件,以及获取所有被占用的所述算法容器的GPU利用率计算平均值得到GPU平均利用率,所述伸缩条件中设置有第一期望指标和第二期望指标;
若所述GPU平均利用率满足所述伸缩条件,根据所述GPU平均利用率和所述占用算法容器数、所述第一期望指标或所述第二期望指标计算期望算法容器数;
将所述算法应用的所述占用算法容器数修改为所述期望算法容器数。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例一中的任意一种基于GPU指标的算法容器弹性伸缩方法,本申请实施例可一种计算机程序产品来实现。该计算机程序产品该计算机程序产品包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述软件代码部分用于执行实现上述实施例一中的任意一种基于GPU指标的算法容器弹性伸缩方法。
并且,结合上述实施例一中的任意一种基于GPU指标的算法容器弹性伸缩方法,本申请实施例可提供一种可读存储介质来实现。该可读存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例一中的任意一种基于GPU指标的算法容器弹性伸缩方法。
通常,各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。本发明的一些方面可以以硬件来实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管本发明的各个方面可以被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的这些框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某种组合来实现。
本发明的实施例可以由计算机软件来实现,该计算机软件由移动设备的数据处理器诸如在处理器实体中可执行,或者由硬件来实现,或者由软件和硬件的组合来实现。包括软件例程、小程序和/或宏的计算机软件或程序(也称为程序产品)可以存储在任何装置可读数据存储介质中,并且它们包括用于执行特定任务的程序指令。计算机程序产品可以包括当程序运行时被配置为执行实施例的一个或多个计算机可执行组件。一个或多个计算机可执行组件可以是至少一个软件代码或其一部分。另外,在这一点上,应当注意,如图中的逻辑流程的任何框可以表示程序步骤、或者互连的逻辑电路、框和功能、或者程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如存储器芯片或在处理器内实现的存储块等物理介质、诸如硬盘或软盘等磁性介质、以及诸如例如DVD及其数据变体、CD等光学介质上。物理介质是非瞬态介质。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (12)
1.基于GPU指标的算法容器弹性伸缩方法,其特征在于,应用于容器云平台,所述容器云平台中包括至少一GPU服务器,每一所述GPU服务器上部署至少一算法容器,算法应用部署于所述容器云平台上占用至少一所述算法容器,所述方法包括:
获取所述算法应用占用所述算法容器的占用算法容器数、所述算法应用的伸缩条件,以及获取所有被占用的所述算法容器的GPU利用率计算平均值得到GPU平均利用率,所述伸缩条件中设置有第一期望指标和第二期望指标;
若所述GPU平均利用率满足所述伸缩条件,根据所述GPU平均利用率和所述占用算法容器数、所述第一期望指标或所述第二期望指标计算期望算法容器数;
将所述算法应用的所述占用算法容器数修改为所述期望算法容器数。
2.根据权利要求1所述的基于GPU指标的算法容器弹性伸缩方法,其特征在于,所述伸缩条件为当所述GPU平均利用率超出所述第一期望指标对所述算法应用进行扩容,和/或当所述GPU平均利用率低于所述第二期望指标对所述算法应用进行缩容。
3.根据权利要求1所述的基于GPU指标的算法容器弹性伸缩方法,其特征在于,设置对应所述第一期望指标的第一时长阈值,对应所述第二指标的第二时长阈值;所述伸缩条件为当所述GPU平均利用率保持超过所述第一期望指标达到所述第一时长阈值进行扩容,和/或当所述GPU平均利用率保持低于所述第二期望指标达到所述第二时长阈值进行缩容。
4.根据权利要求2或3任一所述的基于GPU指标的算法容器弹性伸缩方法,其特征在于,在进行扩容时,所述期望算法容器数为所述GPU平均利用率与所述第一期望指标的比值乘以所述占用算法容器数并向上取整;在进行缩容时,所述期望算法容器数为所述GPU平均利用率与所述第一期望指标的比值乘以所述占用算法容器数并向下取整。
5.根据权利要求1所述的基于GPU指标的算法容器弹性伸缩方法,其特征在于,所述算法应用设有伸缩规则,所述伸缩规则包括最大容器数和最小容器数;当所述期望算法容器数大于所述最大容器数时,将所述期望算法容器数修改为所述最大容器数;当所述期望算法容器数小于所述最大容器数时,将所述期望算法容器数修改为所述最小容器数。
6.根据权利要求1所述的基于GPU指标的算法容器弹性伸缩方法,其特征在于,在所述容器云平台的每一所述GPU服务器上部署采集客户端,用于采集每一所述算法容器的GPU利用率。
7.根据权利要求6所述的基于GPU指标的算法容器弹性伸缩方法,其特征在于,所述容器云平台上定义弹性伸缩控制器和GPU数据监控模块,其中所述GPU数据监控模块用于获取所述采集客户端的GPU利用率,所述弹性伸缩控制器用于为所述算法应用创建自动伸缩器和计算所述期望算法容器数,所述自动伸缩器用于与所述容器云平台用于将所述占用算法容器数修改为所述期望算法容器数。
8.根据权利要求7所述的基于GPU指标的算法容器弹性伸缩方法,其特征在于,所述弹性伸缩控制器还用于创建轮询组件,控制所述GPU数据监控模块每间隔设定时间获取对应所述算法应用的所有所述算法容器的GPU利用率。
9.基于GPU指标的算法容器弹性伸缩装置,其特征在于,应用于容器云平台,所述容器云平台中包括至少一GPU服务器,每一所述GPU服务器上部署至少一算法容器,算法应用部署于所述容器云平台上占用至少一所述算法容器,包括以下模块:
获取模块,用于获取所述算法应用占用所述算法容器的占用算法容器数、所述算法应用的伸缩条件,以及获取所有被占用的所述算法容器的GPU利用率计算平均值得到GPU平均利用率,所述伸缩条件中设置有第一期望指标和第二期望指标;
计算模块,若所述GPU平均利用率满足所述伸缩条件,用于根据所述GPU平均利用率和所述占用算法容器数、所述第一期望指标或所述第二期望指标计算期望算法容器数;
伸缩模块,用于将所述算法应用的所述占用算法容器数修改为所述期望算法容器数。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至8任一所述的基于GPU指标的算法容器弹性伸缩方法。
11.一种计算机程序产品,其特征在于,包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述软件代码部分用于执行根据权利要求1至8任一项所述的基于GPU指标的算法容器弹性伸缩方法。
12.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据权利要求1至8任一项所述的基于GPU指标的算法容器弹性伸缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111320766.4A CN114020468A (zh) | 2021-11-09 | 2021-11-09 | 基于gpu指标的算法容器弹性伸缩方法、装置及其应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111320766.4A CN114020468A (zh) | 2021-11-09 | 2021-11-09 | 基于gpu指标的算法容器弹性伸缩方法、装置及其应用 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114020468A true CN114020468A (zh) | 2022-02-08 |
Family
ID=80062570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111320766.4A Pending CN114020468A (zh) | 2021-11-09 | 2021-11-09 | 基于gpu指标的算法容器弹性伸缩方法、装置及其应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020468A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115454680A (zh) * | 2022-10-12 | 2022-12-09 | 中航信移动科技有限公司 | 一种应用控制系统 |
-
2021
- 2021-11-09 CN CN202111320766.4A patent/CN114020468A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115454680A (zh) * | 2022-10-12 | 2022-12-09 | 中航信移动科技有限公司 | 一种应用控制系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110138732B (zh) | 访问请求的响应方法、装置、设备及存储介质 | |
CN108683720B (zh) | 一种容器集群服务配置方法及装置 | |
US11573725B2 (en) | Object migration method, device, and system | |
CN111464355A (zh) | Kubernetes容器集群的伸缩容控制方法、装置和网络设备 | |
AU2016238862B2 (en) | Adaptive service timeouts | |
CN110933178B (zh) | 调整集群系统内的节点配置的方法及服务器 | |
CN112825023A (zh) | 集群资源管理方法、装置、电子设备和存储介质 | |
CN112291335A (zh) | 移动边缘计算中的优化任务调度方法 | |
CN111431741A (zh) | 服务上线方法、系统、计算机设备及存储介质 | |
CN115469813A (zh) | 数据处理方法及装置、存储介质、电子装置 | |
CN114490078A (zh) | 一种微服务的动态缩扩容方法、装置及设备 | |
CN114020468A (zh) | 基于gpu指标的算法容器弹性伸缩方法、装置及其应用 | |
CN110347546B (zh) | 监控任务动态调整方法、装置、介质及电子设备 | |
CN115361295B (zh) | 基于topsis的资源备份方法、装置、设备及介质 | |
CN111245928A (zh) | 基于超融合架构的资源调节方法、物联网服务器及介质 | |
CN113127289B (zh) | 一种基于yarn集群的资源管理方法、计算机设备和存储介质 | |
CN113064655A (zh) | 一种bios网络启动方法、装置和计算机可读存储介质 | |
CN110474787B (zh) | 一种节点故障检测方法和装置 | |
CN107305531B (zh) | 缓存容量限值确定方法和装置以及计算设备 | |
CN110602187A (zh) | 终端共享方法、装置及设备 | |
Huaijun et al. | Research and implementation of mobile cloud computing offloading system based on Docker container | |
CN105763508A (zh) | 一种数据访问方法和应用服务器 | |
CN112463754B (zh) | Hdfs中数据节点切换方法、装置及计算机设备 | |
CN115794305B (zh) | 虚拟机内存的调整方法和装置、存储介质及电子装置 | |
CN115292051B (zh) | 一种gpu资源pod的热迁移方法、装置及应用 |
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 |