CN109873718A - 一种容器自适应伸缩方法、服务器及存储介质 - Google Patents

一种容器自适应伸缩方法、服务器及存储介质 Download PDF

Info

Publication number
CN109873718A
CN109873718A CN201910063715.4A CN201910063715A CN109873718A CN 109873718 A CN109873718 A CN 109873718A CN 201910063715 A CN201910063715 A CN 201910063715A CN 109873718 A CN109873718 A CN 109873718A
Authority
CN
China
Prior art keywords
container
resource utilization
current
dilatation
preheating
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
Application number
CN201910063715.4A
Other languages
English (en)
Inventor
刘洪晔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910063715.4A priority Critical patent/CN109873718A/zh
Publication of CN109873718A publication Critical patent/CN109873718A/zh
Priority to PCT/CN2019/116556 priority patent/WO2020151306A1/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种容器自适应伸缩方法,应用于服务器,该方法包括:设置最小容器数量值、最大容器数量值、触发容器伸缩的扩容资源使用率阈值及缩容资源使用率阈值;获取服务器的各当前执行容器的资源使用率;创建预热容器;当某个当前执行容器的资源使用率大于扩容资源使用率阈值,且小于最大容器数量值时,将一预热容器激活成执行容器进行扩容;及当某个当前执行容器的资源使用率在预设时间内大于最小容器数量值,且小于缩容资源使用率阈值时,将当前执行容器转为预热容器进行缩容。本发明能够对可能启动的容器提前预热准备,加快容器扩容时容器的启动速度,同时能够根据系统需求动态减少容器的数量,保障服务器的稳定性和可靠性。

Description

一种容器自适应伸缩方法、服务器及存储介质
技术领域
本发明涉及计算机领域,尤其涉及一种容器自适应伸缩方法、服务器及存储介质。
背景技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。一个完整的Docker有以下几个部分组成:客户端(Docker Client)、守护进程(Docker Daemon)、镜像(Docker Image)及容器(DockerContainer)。其中,容器技术是一种新型虚拟化技术,容器作为物理资源的逻辑抽象,具有资源占用少、资源供给快等特点,适合工作负载突变的互联网应用模式。
由于Docker镜像采用分层加载的技术,最上层为可读写的层,对于Docker来说,容器可以认为是已经运行过的或正在运行的镜像,即在镜像上添加了改动层。目前的容器技术中,容器在实际启动过程中,Docker需要为该层进行虚拟磁盘设备创建、文件系统创建、挂载、运行时配置写入及启动进程等一系列操作。
但是,当面对较为复杂的应用时,通过上述的一系列操作将会影响启动容器的速度,导致其启动缓慢,容器扩展或收缩的时间也会变长,导致容器的扩容速度可能无法满足业务需求,影响业务的正常运行。
发明内容
本发明的主要目的在于提供一种容器自适应伸缩方法、服务器及存储介质,旨在解决容器扩展或收缩的时间长,导致容器的扩容速度无法满足业务需求,影响业务的正常运行的技术问题。
为实现上述目的,本发明提供的一种容器自适应伸缩方法,应用于服务器,该方法包括:
设置步骤:设置最小容器数量值、最大容器数量值、触发容器伸缩的扩容资源使用率阈值及缩容资源使用率阈值;
监控步骤:获取所述服务器的各当前执行容器的资源使用率;
创建步骤:根据所述资源使用率及预设的创建规则创建预热容器;
扩容步骤:当某个当前执行容器的资源使用率大于所述扩容资源使用率阈值,且小于所述最大容器数量值时,将创建的一所述预热容器激活成执行容器进行扩容;及
缩容步骤:当某个当前执行容器的资源使用率在预设时间内大于所述最小容器数量值,且小于所述缩容资源使用率阈值时,将所述当前执行容器转为预热容器进行缩容。
优选地,所述扩容步骤还包括:当所述资源使用率大于所述最大容器数量值时,停止容器扩容。
优选地,所述创建规则的公式为:
N=(最大容器数-当前执行容器数-当前预热容器数)*(资源使用率大于所述扩容资源使用率阈值的容器数/当前执行容器数)^n-当前预热容器数,其中,N为当前所需创建的预热容器数量,所述当前执行容器数表示处于运行状态的容器数量,n为一经验值,且n>1。
优选地,所述创建规则还包括:
当N>0时,对N向上取整,作为所述服务器当前所需创建的预热容器数量;及
当N≤0时,维持当前执行容器的数量。
优选地,所述创建步骤还包括:每隔预设周期根据所述资源使用率,按照所述创建规则创建预热容器
为实现上述目的,本发明还进一步提供一种服务器,所述服务器包括存储器和处理器,所述存储器上存储有容器自适应伸缩程序,所述容器自适应伸缩程序被所述处理器执行时实现如下步骤:
设置步骤:设置最小容器数量值、最大容器数量值、触发容器伸缩的扩容资源使用率阈值及缩容资源使用率阈值;
监控步骤:获取所述服务器的各当前执行容器的资源使用率;
创建步骤:根据所述资源使用率及预设的创建规则创建预热容器;
扩容步骤:当某个当前执行容器的资源使用率大于所述扩容资源使用率阈值,且小于所述最大容器数量值时,将创建的一所述预热容器激活成执行容器进行扩容;及
缩容步骤:当某个当前执行容器的资源使用率在预设时间内大于所述最小容器数量值,且小于所述缩容资源使用率阈值时,将所述当前执行容器转为预热容器进行缩容。
优选地,所述处理器运行所述容器自适应伸缩程序,还执行以下步骤:当所述资源使用率大于所述最大容器数量值时,停止容器扩容。
优选地,所述创建规则的公式为:
N=(最大容器数-当前执行容器数-当前预热容器数)*(资源使用率大于所述扩容资源使用率阈值的容器数/当前执行容器数)^n-当前预热容器数,其中,N为当前所需创建的预热容器数量,所述当前执行容器数表示处于运行状态的容器数量,n为一经验值,且n>1。
优选地,所述创建规则还包括:
当N>0时,对N向上取整,作为所述服务器当前所需创建的预热容器数量;及
当N≤0时,维持当前执行容器的数量。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有容器自适应伸缩程序,所述容器自适应伸缩程序可被一个或者多个处理器执行,以实现如上所述的容器自适应伸缩方法的步骤。
本发明提出的容器自适应伸缩方法、服务器及存储介质,实时监控系统当前执行容器的资源使用率,根据所述资源使用率与预设的创建规则预先创建预热容器,再根据当前执行容器的资源使用率与预设阈值的关系判断是否触发容器扩容或缩容,当需要进行扩容时将创建的预热容器激活成执行容器,当需要进行缩容是将当前执行容器转化成预热容器。本发明能够提前对可能要启动的容器进行预热准备,节约容器的启动时间,加快容器扩容时容器的启动速度,同时能够根据系统需求动态减少容器的数量,保障服务器的稳定性和可靠性。
附图说明
图1为本发明中服务器实施例的示意图;
图2为图1中容器自适应伸缩程序实施例的程序模块示意图;
图3为图1中容器自适应伸缩方法实施例的方法流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本发明提供一种服务器1。参照图1所示,为本发明服务器1实施例的示意图,在本实施例中,服务器1设置扩容资源使用率阈值及缩容资源使用率阈值,并对各容器的资源使用率情况进行监控,创建能够对可能要启动的容器进行预先准备的预热容器,当某个当前执行容器的资源使用率大于扩容资源使用率阈值,且小于最大容器数量值时,将预先创建好的一个预热容器激活成执行容器进行扩容;当某个当前执行容器到的资源使用率在预设时间内使用率大于最小容器数量值,且小于缩容资源使用率阈值时,将当前执行容器转为预热容器进行缩容。本发明能够对可能要启动的容器进行预先准备,节约容器的启动时间,加快容器扩容时容器的启动速度,同时能够根据系统需求动态减少容器的数量,保障服务器的稳定性和可靠性。
服务器11可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等的一种或几种。该服务器1包括,但不仅限于,存储器11、处理器12及网络接口13。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是服务器1的内部存储单元,例如该服务器1的硬盘。存储器11在另一些实施例中也可以是服务器1的外部存储设备,例如该服务器1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
进一步地,存储器11还可以既包括服务器1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于服务器1的应用软件及各类数据,例如容器自适应伸缩程序10的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行容器自适应伸缩程序10等。
网络接口13可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该服务器1与其他电子设备之间建立通信连接。
可选地,该装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在服务器1中处理的信息以及用于显示可视化的用户界面。
图1仅示出了具有组件11-13以及容器自适应伸缩程序10的服务器1,本领域技术人员可以理解的是,图1示出的结构并不构成对服务器1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在一实施例中,图1的容器自适应伸缩程序10被处理器12执行时,实现以下步骤:
设置步骤:设置最小容器数量值、最大容器数量值、触发容器伸缩的扩容资源使用率阈值及缩容资源使用率阈值;
监控步骤:获取所述服务器的各当前执行容器的资源使用率;
创建步骤:根据所述资源使用率及预设的创建规则创建预热容器;
扩容步骤:当某个当前执行容器的资源使用率大于所述扩容资源使用率阈值,且小于所述最大容器数量值时,将创建的一所述预热容器激活成执行容器进行扩容;及
缩容步骤:当某个当前执行容器的资源使用率在预设时间内大于所述最小容器数量值,且小于所述缩容资源使用率阈值时,将所述当前执行容器转为预热容器进行缩容。
可选地,在另一实施例中,所述处理器运行所述容器自适应伸缩程序,还执行以下步骤:当所述资源使用率大于所述最大容器数量值时,停止容器扩容。
可选地,在另一实施例中,所述创建步骤还包括:每隔预设周期根据所述资源使用率,按照创建规则创建预热容器。
关于上述步骤的详细介绍,请参照下述图2关于容器自适应伸缩程序10实施例的程序模块示意图及图3关于容器自适应伸缩方法实施例的方法流程示意图的说明。
参照图2所示,为图1中容器自适应伸缩程序10实施例的程序模块示意图。容器自适应伸缩程序10被分割为多个模块,该多个模块存储于存储器11中,并由处理器12执行,以完成本发明。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段。
在本实施例中,所述容器自适应伸缩程序10包括设置模块110、监控模块120、创建模块130、扩容模块140及缩容模块150。
设置模块110,用于设置最小容器数量值及最大容器数量值,以限制容器自适应伸缩的范围。同时用于设置触发容器伸缩的扩容资源使用率阈值及缩容资源使用率阈值,以界限触发容器进行扩容或缩容的临界值。具体地,其中所述资源使用率包括CPU及内存等资源使用率。
监控模块120,用于获取服务器的各当前执行容器的资源使用率,以此实现对各容器资源使用率情况进行监控。具体地,在一实施例中,采用数据采集器实时采集每个容器的负载及CPU、内存等资源使用率,在其他实施例中,数据采集器还可以定时采集每个容器的负载及CPU、内存等资源使用率。
创建模块130,用于根据前述的资源使用率及预设的创建规则创建预热容器。所述预热容器是在接受启动容器请求之前为每个基础镜像所创建的,以使相应的基础镜像挂载有可写层文件系统。所述基础镜像为基于Linux系统增加运行所需要的执行环境与控制监控所需程序打包而成的镜像。具体的,在开源应用容器引擎Docker中,预热容器指的是使用pause命令将处于运行状态的容器转换为不占用计算资源,但已完成状态加载,应用程序已被加载到内存的容器。通过预热容器的设置,能够对可能要启动的容器进行预先准备,提前为启动容器加载相关配置以及对内存进行初始化,从而节省容器的启动时间,加快容器的启动速度,达到容器快速扩容的目的。
在本实施例中,计算当前所需创建预热容器数量的创建规则公式为:
N=(最大容器数-当前执行容器数-当前预热容器数)*(资源使用率大于所述扩容资源使用率阈值的容器数/当前执行容器数)^n-当前预热容器数,其中,N为当前所需创建的预热容器数量,所述当前执行容器数表示处于运行状态的容器数量,n为一经验值,且n>1。
更进一步地,所述创建规则还包括:
当N>0时,对N向上取整(例如当N=1.2时,默认N=2),作为所述服务器1当前所需创建的预热容器数量;及
当N≤0时,维持当前执行容器的数量。
在另一实施例中,所述创建模块130还可以根据资源使用率,每隔预设周期(例如10分钟)按照创建规则创建预热容器,且所有预热容器的预设周期(例如10分钟)内未被激活启动的预热容器将被强制关闭。
扩容模块140,用于执行容器扩容。当某个当前执行容器的资源使用率大于所述扩容资源使用率阈值,且小于所述最大容器数量值时,将创建的一所述预热容器激活成执行容器进行扩容。
更一步地,所述扩容模块还执行当资源使用率大于最大容器数量值时,停止容器扩容。
缩容模块150,用于执行容器缩容。当某个当前执行容器的资源使用率在预设时间(例如10分钟)内大于所述最小容器数量值,且小于所述缩容资源使用率阈值时,将所述当前执行容器转为预热容器进行缩容。
进一步地,所述扩容模块140在执行容器扩容动作之前,还执行:
当所述资源使用率大于扩容资源使用率阈值,且小于最大容器数量值时,判断是否存在所述预热容器;
若存在预热容器,则直接将预热容器修改为激活状态提供服务;及
若不存在预热容器,则冷启动一个未运行状态的容器提供服务。
此外,本发明还提供一种容器自适应伸缩方法。参照图3所示,为本发明容器自适应伸缩方法的实施例的方法流程示意图。服务器1的处理器12执行存储器11中存储的容器自适应伸缩程序10时实现容器自适应伸缩方法的如下步骤:
设置步骤S100,利用所述设置模块110设置最小容器数量值及最大容器数量值,以限制容器自适应伸缩的范围。同时用于设置触发容器伸缩的扩容资源使用率阈值及缩容资源使用率阈值,以界限触发容器进行扩容或缩容的临界值。具体地,其中所述资源使用率包括CPU及内存等资源使用率。
监控步骤S110,利用所述监控模块120获取服务器的各当前执行容器的资源使用率,以此实现对各容器的资源使用率情况进行监控。在一实施例中,采用数据采集器实时采集每个容器的负载及CPU、内存等资源使用率,在其他实施例中,数据采集器还可以定时采集每个容器的负载及CPU、内存等资源使用率。
创建步骤S120,利用所述创建模块130根据前述的资源使用率及预设的创建规则创建预热容器。所述预热容器是在接受启动容器请求之前为每个基础镜像所创建的,以使相应的基础镜像挂载有可写层文件系统。所述基础镜像为基于Linux系统增加运行所需要的执行环境与控制监控所需程序打包而成的镜像。具体的,在开源应用容器引擎Docker中,预热容器指的是使用pause命令将处于运行状态的容器转换为不占用计算资源,但已完成状态加载,应用程序已被加载到内存的容器。通过预热容器的设置,能够对可能要启动的容器进行预先准备,提前为启动容器加载相关配置以及对内存进行初始化,从而节省容器的启动时间,加快容器的启动速度,达到容器快速扩容的目的。
在本实施例中,计算当前所需创建预热容器数量的创建规则公式为:
N=(最大容器数-当前执行容器数-当前预热容器数)*(资源使用率大于所述扩容资源使用率阈值的容器数/当前执行容器数)^n-当前预热容器数,其中,N为当前所需创建的预热容器数量,所述当前执行容器数表示处于运行状态的容器数量,n为一经验值,且n>1。
更进一步地,所述创建规则还包括:
当N>0时,对N向上取整(例如当N=1.2时,默认N=2),作为所述服务器1当前所需创建的预热容器数量;及
当N≤0时,维持当前执行容器的数量。
在另一实施例中,所述步骤S120利用所述创建模块130还可以根据资源使用率,每隔预设周期(例如10分钟)按照创建规则创建预热容器,且所有预热容器的预设周期(例如10分钟)内未被激活启动的预热容器将被强制关闭。
扩容步骤S130,利用所述扩容模块140执行容器扩容。当某个当前执行容器的资源使用率大于所述扩容资源使用率阈值,且小于所述最大容器数量值时,将创建的一所述预热容器激活成执行容器进行扩容。
更一步地,所述扩容模块还执行当资源使用率大于最大容器数量值时,停止容器扩容。
缩容步骤S140,利用所述缩容模块150执行容器缩容。当某个当前执行容器的资源使用率在预设时间(例如10分钟)内大于所述最小容器数量值,且小于所述缩容资源使用率阈值时,将所述当前执行容器转为预热容器进行缩容。
进一步地,所述扩容步骤S130还包括:
当所述资源使用率大于扩容资源使用率阈值,且小于最大容器数量值时,判断是否存在所述预热容器;
若存在预热容器,则直接将预热容器修改为激活状态提供服务;及
若不存在预热容器,则冷启动一个未运行状态的容器提供服务。
此外,本发明实施例还提出一种计算机可读存储介质,计算机可读存储介质可以是硬盘、多媒体卡、SD卡、闪存卡、SMC、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器等中的任意一种或者几种的任意组合。计算机可读存储介质中包括容器自适应伸缩程序10,该容器自适应伸缩程序10被处理器12执行时实现以下操作:
设置步骤S100,利用所述设置模块110设置最小容器数量值及最大容器数量值,以限制容器自适应伸缩的范围。同时用于设置触发容器伸缩的扩容资源使用率阈值及缩容资源使用率阈值,以界限触发容器进行扩容或缩容的临界值。具体地,其中所述资源使用率包括CPU及内存等资源使用率。
监控步骤S110,利用所述监控模块120获取服务器的各当前执行容器的资源使用率,以此实现对各容器的资源使用率情况进行监控。在一实施例中,采用数据采集器实时采集每个容器的负载及CPU、内存等资源使用率,在其他实施例中,数据采集器还可以定时采集每个容器的负载及CPU、内存等资源使用率。
创建步骤S120,利用所述创建模块130根据前述的资源使用率及预设的创建规则创建预热容器。所述预热容器是在接受启动容器请求之前为每个基础镜像所创建的,以使相应的基础镜像挂载有可写层文件系统。所述基础镜像为基于Linux系统增加运行所需要的执行环境与控制监控所需程序打包而成的镜像。具体的,在开源应用容器引擎Docker中,预热容器指的是使用pause命令将处于运行状态的容器转换为不占用计算资源,但已完成状态加载,应用程序已被加载到内存的容器。通过预热容器的设置,能够对可能要启动的容器进行预先准备,提前为启动容器加载相关配置以及对内存进行初始化,从而节省容器的启动时间,加快容器的启动速度,达到容器快速扩容的目的。
在本实施例中,计算当前所需创建预热容器数量的创建规则公式为:
N=(最大容器数-当前执行容器数-当前预热容器数)*(资源使用率大于所述扩容资源使用率阈值的容器数/当前执行容器数)^n-当前预热容器数,其中,N为当前所需创建的预热容器数量,所述当前执行容器数表示处于运行状态的容器数量,n为一经验值,且n>1。
更进一步地,所述创建规则还包括:
当N>0时,对N向上取整(例如当N=1.2时,默认N=2),作为所述服务器1当前所需创建的预热容器数量;及
当N≤0时,维持当前执行容器的数量。
在另一实施例中,所述步骤S120利用所述创建模块130还可以根据资源使用率,每隔预设周期(例如10分钟)按照创建规则创建预热容器,且所有预热容器的预设周期(例如10分钟)内未被激活启动的预热容器将被强制关闭。
扩容步骤S130,利用所述扩容模块140执行容器扩容。当某个当前执行容器的资源使用率大于所述扩容资源使用率阈值,且小于所述最大容器数量值时,将创建的一所述预热容器激活成执行容器进行扩容。
更一步地,所述扩容模块还执行当资源使用率大于最大容器数量值时,停止容器扩容。
缩容步骤S140,利用所述缩容模块150执行容器缩容。当某个当前执行容器的资源使用率在预设时间(例如10分钟)内大于所述最小容器数量值,且小于所述缩容资源使用率阈值时,将所述当前执行容器转为预热容器进行缩容。
进一步地,所述扩容步骤S130还包括:
当所述资源使用率大于扩容资源使用率阈值,且小于最大容器数量值时,判断是否存在所述预热容器;
若存在预热容器,则直接将预热容器修改为激活状态提供服务;及
若不存在预热容器,则冷启动一个未运行状态的容器提供服务。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种容器自适应伸缩方法,应用于服务器,其特征在于,该方法包括:
设置步骤:设置最小容器数量值、最大容器数量值、触发容器伸缩的扩容资源使用率阈值及缩容资源使用率阈值;
监控步骤:获取所述服务器的各当前执行容器的资源使用率;
创建步骤:根据所述资源使用率及预设的创建规则创建预热容器;
扩容步骤:当某个当前执行容器的资源使用率大于所述扩容资源使用率阈值,且小于所述最大容器数量值时,将创建的一所述预热容器激活成执行容器进行扩容;及
缩容步骤:当某个当前执行容器的资源使用率在预设时间内大于所述最小容器数量值,且小于所述缩容资源使用率阈值时,将所述当前执行容器转为预热容器进行缩容。
2.如权利要求1所述的容器自适应伸缩方法,其特征在于,所述扩容步骤还包括:
当所述资源使用率大于所述最大容器数量值时,停止容器扩容。
3.如权利要求1所述的容器自适应伸缩方法,其特征在于,所述创建规则的公式为:
N=(最大容器数-当前执行容器数-当前预热容器数)*(资源使用率大于所述扩容资源使用率阈值的容器数/当前执行容器数)^n-当前预热容器数,其中,N为当前所需创建的预热容器数量,所述当前执行容器数表示处于运行状态的容器数量,n为一经验值,且n>1。
4.如权利要求3所述的容器自适应伸缩方法,其特征在于,所述创建规则还包括:
当N>0时,对N向上取整,作为所述服务器当前所需创建的预热容器数量;及
当N≤0时,维持当前执行容器的数量。
5.如权利要求1-4中任一项所述的容器自适应伸缩方法,其特征在于,所述创建步骤还包括:每隔预设周期根据所述资源使用率,按照所述创建规则创建预热容器。
6.一种服务器,其特征在于,所述服务器包括存储器和处理器,所述存储器上存储有容器自适应伸缩程序,所述容器自适应伸缩程序被所述处理器执行时实现如下步骤:
设置步骤:设置最小容器数量值、最大容器数量值、触发容器伸缩的扩容资源使用率阈值及缩容资源使用率阈值;
监控步骤:获取所述服务器的各当前执行容器的资源使用率;
创建步骤:根据所述资源使用率及预设的创建规则创建预热容器;
扩容步骤:当某个当前执行容器的资源使用率大于所述扩容资源使用率阈值,且小于所述最大容器数量值时,将创建的一所述预热容器激活成执行容器进行扩容;及
缩容步骤:当某个当前执行容器的资源使用率在预设时间内大于所述最小容器数量值,且小于所述缩容资源使用率阈值时,将所述当前执行容器转为预热容器进行缩容。
7.如权利要求6所述的服务器,其特征在于,所述处理器运行所述容器自适应伸缩程序,还执行以下步骤:
当所述资源使用率大于所述最大容器数量值时,停止容器扩容。
8.如权利要求7所述的服务器,其特征在于,所述创建规则的公式为:
N=(最大容器数-当前执行容器数-当前预热容器数)*(资源使用率大于所述扩容资源使用率阈值的容器数/当前执行容器数)^n-当前预热容器数,其中,N为当前所需创建的预热容器数量,所述当前执行容器数表示处于运行状态的容器数量,n为一经验值,且n>1。
9.如权利要求6-8中任一项所述的服务器,其特征在于,所述创建规则还包括:
当N>0时,对N向上取整,作为所述服务器当前所需创建的预热容器数量;及
当N≤0时,维持当前执行容器的数量。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有容器自适应伸缩程序,所述容器自适应伸缩程序可被一个或者多个处理器执行,以实现如权利要求1-4中任一项所述的容器自适应伸缩方法的步骤。
CN201910063715.4A 2019-01-23 2019-01-23 一种容器自适应伸缩方法、服务器及存储介质 Pending CN109873718A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910063715.4A CN109873718A (zh) 2019-01-23 2019-01-23 一种容器自适应伸缩方法、服务器及存储介质
PCT/CN2019/116556 WO2020151306A1 (zh) 2019-01-23 2019-11-08 一种容器自适应伸缩方法、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910063715.4A CN109873718A (zh) 2019-01-23 2019-01-23 一种容器自适应伸缩方法、服务器及存储介质

Publications (1)

Publication Number Publication Date
CN109873718A true CN109873718A (zh) 2019-06-11

Family

ID=66917968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910063715.4A Pending CN109873718A (zh) 2019-01-23 2019-01-23 一种容器自适应伸缩方法、服务器及存储介质

Country Status (2)

Country Link
CN (1) CN109873718A (zh)
WO (1) WO2020151306A1 (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110287003A (zh) * 2019-06-28 2019-09-27 北京九章云极科技有限公司 资源的管理方法和管理系统
CN111274576A (zh) * 2020-01-17 2020-06-12 济南浪潮高新科技投资发展有限公司 智能合约运行环境的控制方法及系统、设备、介质
CN111338752A (zh) * 2020-02-14 2020-06-26 聚好看科技股份有限公司 容器调整方法及装置
CN111431769A (zh) * 2020-03-30 2020-07-17 招商局金融科技有限公司 数据监控方法、服务器及存储介质
CN111464616A (zh) * 2020-03-30 2020-07-28 招商局金融科技有限公司 自动调节应用负载服务数量的方法、服务器及存储介质
WO2020151306A1 (zh) * 2019-01-23 2020-07-30 平安科技(深圳)有限公司 一种容器自适应伸缩方法、服务器及存储介质
CN112363825A (zh) * 2020-10-16 2021-02-12 北京五八信息技术有限公司 一种弹性伸缩方法及装置
CN112543354A (zh) * 2020-11-27 2021-03-23 鹏城实验室 业务感知的分布式视频集群高效伸缩方法和系统
CN112711506A (zh) * 2019-10-24 2021-04-27 阿里巴巴集团控股有限公司 资源组内应用实例的调整方法、装置、存储介质和处理器
CN113032153A (zh) * 2021-04-12 2021-06-25 平安国际智慧城市科技股份有限公司 容器服务资源动态扩容方法、系统、装置及存储介质
CN113407112A (zh) * 2021-05-11 2021-09-17 浙江大华技术股份有限公司 扩容方法、电子设备及计算机可读存储介质
CN114138357A (zh) * 2021-10-29 2022-03-04 北京达佳互联信息技术有限公司 一种请求处理方法、装置、电子设备、存储介质及产品
WO2023202451A1 (zh) * 2022-04-21 2023-10-26 北京火山引擎科技有限公司 一种任务处理方法、装置、设备及介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810020A (zh) * 2014-02-14 2014-05-21 华为技术有限公司 虚拟机弹性伸缩方法及装置
CN104243285A (zh) * 2014-09-19 2014-12-24 广州华多网络科技有限公司 一种消息推送的方法以及服务器
CN105955662A (zh) * 2016-04-22 2016-09-21 浪潮(北京)电子信息产业有限公司 一种k-db数据表空间的扩容方法与系统
CN106227582A (zh) * 2016-08-10 2016-12-14 华为技术有限公司 弹性伸缩方法及系统
US20170223100A1 (en) * 2013-12-20 2017-08-03 Facebook, Inc. Self-adaptive control system for dynamic capacity management of latency-sensitive application servers
CN108459905A (zh) * 2017-02-17 2018-08-28 华为技术有限公司 资源池容量规划方法及服务器
US20180246746A1 (en) * 2017-02-24 2018-08-30 Genband Us Llc Predictive Analytics for Virtual Network Functions
CN108769100A (zh) * 2018-04-03 2018-11-06 郑州云海信息技术有限公司 一种基于kubernetes容器数量弹性伸缩的实现方法及其装置
CN109067867A (zh) * 2018-07-30 2018-12-21 北京航空航天大学 面向数据中心负载监控的虚拟化容器服务弹性伸缩方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109873718A (zh) * 2019-01-23 2019-06-11 平安科技(深圳)有限公司 一种容器自适应伸缩方法、服务器及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170223100A1 (en) * 2013-12-20 2017-08-03 Facebook, Inc. Self-adaptive control system for dynamic capacity management of latency-sensitive application servers
CN103810020A (zh) * 2014-02-14 2014-05-21 华为技术有限公司 虚拟机弹性伸缩方法及装置
CN104243285A (zh) * 2014-09-19 2014-12-24 广州华多网络科技有限公司 一种消息推送的方法以及服务器
CN105955662A (zh) * 2016-04-22 2016-09-21 浪潮(北京)电子信息产业有限公司 一种k-db数据表空间的扩容方法与系统
CN106227582A (zh) * 2016-08-10 2016-12-14 华为技术有限公司 弹性伸缩方法及系统
CN108459905A (zh) * 2017-02-17 2018-08-28 华为技术有限公司 资源池容量规划方法及服务器
US20180246746A1 (en) * 2017-02-24 2018-08-30 Genband Us Llc Predictive Analytics for Virtual Network Functions
CN108769100A (zh) * 2018-04-03 2018-11-06 郑州云海信息技术有限公司 一种基于kubernetes容器数量弹性伸缩的实现方法及其装置
CN109067867A (zh) * 2018-07-30 2018-12-21 北京航空航天大学 面向数据中心负载监控的虚拟化容器服务弹性伸缩方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020151306A1 (zh) * 2019-01-23 2020-07-30 平安科技(深圳)有限公司 一种容器自适应伸缩方法、服务器及存储介质
CN110287003A (zh) * 2019-06-28 2019-09-27 北京九章云极科技有限公司 资源的管理方法和管理系统
CN112711506A (zh) * 2019-10-24 2021-04-27 阿里巴巴集团控股有限公司 资源组内应用实例的调整方法、装置、存储介质和处理器
CN111274576A (zh) * 2020-01-17 2020-06-12 济南浪潮高新科技投资发展有限公司 智能合约运行环境的控制方法及系统、设备、介质
CN111338752A (zh) * 2020-02-14 2020-06-26 聚好看科技股份有限公司 容器调整方法及装置
CN111338752B (zh) * 2020-02-14 2022-04-08 聚好看科技股份有限公司 容器调整方法及装置
CN111431769A (zh) * 2020-03-30 2020-07-17 招商局金融科技有限公司 数据监控方法、服务器及存储介质
CN111464616A (zh) * 2020-03-30 2020-07-28 招商局金融科技有限公司 自动调节应用负载服务数量的方法、服务器及存储介质
CN112363825A (zh) * 2020-10-16 2021-02-12 北京五八信息技术有限公司 一种弹性伸缩方法及装置
CN112543354A (zh) * 2020-11-27 2021-03-23 鹏城实验室 业务感知的分布式视频集群高效伸缩方法和系统
CN113032153A (zh) * 2021-04-12 2021-06-25 平安国际智慧城市科技股份有限公司 容器服务资源动态扩容方法、系统、装置及存储介质
CN113407112A (zh) * 2021-05-11 2021-09-17 浙江大华技术股份有限公司 扩容方法、电子设备及计算机可读存储介质
CN114138357A (zh) * 2021-10-29 2022-03-04 北京达佳互联信息技术有限公司 一种请求处理方法、装置、电子设备、存储介质及产品
WO2023202451A1 (zh) * 2022-04-21 2023-10-26 北京火山引擎科技有限公司 一种任务处理方法、装置、设备及介质

Also Published As

Publication number Publication date
WO2020151306A1 (zh) 2020-07-30

Similar Documents

Publication Publication Date Title
CN109873718A (zh) 一种容器自适应伸缩方法、服务器及存储介质
EP3063620B1 (en) Selective power management for pre-boot firmware updates
WO2007136021A1 (ja) 仮想マシン管理装置、仮想マシン管理方法およびプログラム
WO2017049617A1 (en) Techniques to select virtual machines for migration
CN107329792B (zh) 一种Docker容器启动方法及装置
MXPA06013666A (es) Metodo, software y aparato para utilizar informacion de historial de estado de aplicacion cuando se reinicien aplicaciones.
CN103729211B (zh) 一种操作系统恢复方法、装置及终端设备
CN110083399B (zh) 小程序运行方法、计算机设备及存储介质
KR102219122B1 (ko) 다중-운영-체제 환경들에서 운영 체제 전환들을 위한 기술들
WO2008006674A1 (en) Reserve pool management in virtualized storage systems
CN105718280A (zh) 一种加速虚拟机io的方法和管理平台
CN109684573B (zh) 目标图片显示方法及装置、存储介质、电子设备
CN109582385A (zh) 应用程序启动方法和装置、存储介质及电子设备
CN112598565B (zh) 一种基于加速卡的服务运行方法、装置、电子设备及存储介质
CN110489305B (zh) 一种服务器管理方法及装置
CN110209465A (zh) 虚拟机跨平台迁移方法、装置及电子设备
CN103617133A (zh) 一种Windows系统中虚拟内存压缩方法和装置
CN113556264A (zh) 实时云平台管理监控系统
CN108549557A (zh) 应用留存方法、终端及存储介质
CN110321179B (zh) 一种应用程序启动方法、系统、装置及计算机存储介质
US7577814B1 (en) Firmware memory management
US10776050B2 (en) Systems and methods for improved write filter operation with provision for monitoring and prediction to delay system reboot
CN109857408A (zh) 终端的应用部署方法、装置、设备、系统及可读存储介质
CN107656702B (zh) 加速硬盘读写的方法及其系统、以及电子设备
CN111722888B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190611