CN111857977A - 弹性伸缩方法、装置、服务器和存储介质 - Google Patents
弹性伸缩方法、装置、服务器和存储介质 Download PDFInfo
- Publication number
- CN111857977A CN111857977A CN202010991995.8A CN202010991995A CN111857977A CN 111857977 A CN111857977 A CN 111857977A CN 202010991995 A CN202010991995 A CN 202010991995A CN 111857977 A CN111857977 A CN 111857977A
- Authority
- CN
- China
- Prior art keywords
- degradation
- instance
- determining
- container
- target
- 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.)
- Granted
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution 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)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种弹性伸缩方法、装置、服务器和存储介质;本发明实施例可确定目标实例的负载情况信息、实例类型,及其所在的目标容器;当负载情况信息符合预设的降级条件时,确定性能低于目标容器的降级容器;将目标实例迁移到降级容器中来实现性能降级;当负载情况信息符合预设的升级条件时,确定性能高于目标容器的升级容器;将目标实例迁移到升级容器中来实现性能升级。本发明实施例可应用于云服务器,通过监测实例实际的负载情况来判断是否需要将其迁移到更符合其工作效率所对应性能的容器中,从而实现云服务中实例的弹性伸缩。由此,采用本方案的云服务可合理利用计算资源,提升计算资源的利用率。
Description
技术领域
本发明涉及计算机领域,具体涉及一种弹性伸缩方法、装置、服务器和存储介质。
背景技术
云是网络、互联网的一种比喻说法,云是指采用云计算(Cloud Computing)技术提供服务的一种服务模式,即,云服务(Elastic Compute Service,简称 ECS)。近年来,越来越多的个人与企业倾向于架设云服务,随着业务的开展,个人或企业之前架设的云服务往往不能满足业务需求,特别是对于具有较大波动性的业务,在高峰期时,个人或企业架设的云服务往往会出现过载的问题,而在低谷期时,个人或企业架设的云服务又往往会出现利用率低、浪费计算资源的问题。
因此,目前的数据库云服务的计算资源利用率低下。
发明内容
本发明实施例提供一种弹性伸缩方法、装置、服务器和存储介质,可以提升云服务的计算资源利用率。
本发明实施例提供一种弹性伸缩方法,包括:
获取目标实例的负载情况信息;
确定搭载了目标实例的目标容器,以及确定目标实例所属的实例类型;
当负载情况信息符合预设的降级条件时,在多个不同性能的候选容器中确定实例类型对应的降级容器,降级容器的性能低于目标容器;
将目标实例从目标容器迁移到降级容器中,得到性能降级后的目标实例,从而实现目标实例的弹性收缩;
当负载情况信息符合预设的升级条件时,在多个不同性能的候选容器中确定实例类型对应的升级容器,升级容器的性能高于目标容器;
将目标实例从目标容器迁移到升级容器中,得到性能升级后的目标实例,从而实现目标实例的弹性扩张。
本发明实施例还提供一种弹性伸缩装置,包括:
情况单元,用于获取目标实例的负载情况信息;
目标单元,用于确定搭载了目标实例的目标容器,以及确定目标实例所属的实例类型;
降级确定单元,用于当负载情况信息符合预设的降级条件时,在多个不同性能的候选容器中确定实例类型对应的降级容器,降级容器的性能低于目标容器;
降级迁移单元,用于将目标实例从目标容器迁移到降级容器中,得到性能降级后的目标实例,从而实现目标实例的弹性收缩;
升级确定单元,用于当负载情况信息符合预设的升级条件时,在多个不同性能的候选容器中确定实例类型对应的升级容器,升级容器的性能高于目标容器;
升级迁移单元,用于将目标实例从目标容器迁移到升级容器中,得到性能升级后的目标实例,从而实现目标实例的弹性扩张。
在一些实施例中,降级确定单元,包括:
降级参数子单元,用于确定实例类型的性能配置参数;
降级范围子单元,用于根据性能配置参数和预设的降级条件确定降级范围;
降级确定子单元,用于当负载情况信息属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
在一些实施例中,性能配置参数包括配置容量,降级范围子单元,用于:
根据配置容量和预设的降级条件,确定降级范围;
在一些实施例中,负载情况信息包括容量占用量,降级确定子单元,用于:
当容量占用量属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
在一些实施例中,性能配置参数包括配置吞吐量,降级范围子单元,用于:
根据配置吞吐量和预设的降级条件,确定降级范围;
负载情况信息包括实际吞吐量,降级确定子单元,用于:
在一些实施例中,当实际吞吐量属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
在一些实施例中,性能配置参数包括配置工作频率,降级范围子单元,用于,包括:
根据配置工作频率和预设的降级条件,确定降级范围;
在一些实施例中,负载情况信息包括实际工作频率,降级确定子单元,用于:
当实际工作频率属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
在一些实施例中,性能配置参数包括配置容量、配置吞吐量和配置工作频率,降级范围包括第一降级范围、第二降级范围和第三降级范围,预设的降级条件包括预设的第一降级条件、预设的第二降级条件和预设的第三降级条件,降级范围子单元,用于:
根据配置容量和预设的第一降级条件,确定第一降级范围;
根据配置吞吐量和预设的第二降级条件,确定第二降级范围;
根据、配置工作频率和预设的第三降级条件,确定第三降级范围;
在一些实施例中,负载情况信息包括负载情况信息包括容量占用量、实际吞吐量和实际工作频率,降级确定子单元,用于:
当容量占用量属于第一降级范围,且实际吞吐量属于第二降级范围,且实际工作频率属于第三降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
在一些实施例中,升级确定单元,包括:
升级参数子单元,用于确定实例类型的性能配置参数;
升级范围子单元,用于根据性能配置参数和预设的升级条件确定升级范围;
升级确定子单元,用于当负载情况信息属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
在一些实施例中,性能配置参数包括配置容量,升级范围子单元,用于:
根据配置容量和预设的升级条件,确定升级范围;
在一些实施例中,负载情况信息包括容量占用量,升级确定子单元,用于:
当容量占用量属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
在一些实施例中,性能配置参数包括配置吞吐量,升级范围子单元,用于:
根据配置吞吐量和预设的升级条件,确定升级范围;
在一些实施例中,负载情况信息包括实际吞吐量,升级确定子单元,用于:
当实际吞吐量属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
在一些实施例中,性能配置参数包括配置工作频率,升级范围子单元,用于:
根据配置工作频率和预设的升级条件,确定升级范围;
在一些实施例中,负载情况信息包括实际工作频率,升级确定子单元,用于:
当实际工作频率属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
在一些实施例中,性能配置参数包括配置容量、配置吞吐量和配置工作频率,升级范围包括第一升级范围、第二升级范围和第三升级范围,预设的升级条件包括预设的第一升级条件、预设的第二升级条件和预设的第三升级条件,升级范围子单元,用于:
根据配置容量和预设的第一升级条件,确定第一升级范围;
根据配置吞吐量和预设的第二升级条件,确定第二升级范围;
根据、配置工作频率和预设的第三升级条件,确定第三升级范围;
在一些实施例中,负载情况信息包括负载情况信息包括容量占用量、实际吞吐量和实际工作频率,升级确定子单元,用于:
当容量占用量属于第一升级范围,或实际吞吐量属于第二升级范围,或实际工作频率属于第三升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
在一些实施例中,降级确定单元,包括:
获取类型排行信息;
根据类型排行信息确定目标实例的实例类型的下一实例类型;
在多个不同性能的候选容器中,将下一实例类型对应的候选容器选取为降级容器。
在一些实施例中,升级确定单元,包括:
获取类型排行信息;
根据类型排行信息确定目标实例的实例类型的上一实例类型;
在多个不同性能的候选容器中,将上一级实例类型对应的候选容器选取为升级容器。
在一些实施例中,情况单元在用于获取目标实例的负载情况信息之前,还用于:
获取用户的实例创建指令,实例创建指令包括实例类型;
在多个不同性能的候选容器中确定实例类型对应的目标容器;
在目标容器中创建目标实例。
本发明实施例还提供一种服务器,包括存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本发明实施例所提供的任一种弹性伸缩方法中的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例所提供的任一种弹性伸缩方法中的步骤。
本发明实施例可以获取目标实例的负载情况信息;确定搭载了目标实例的目标容器,以及确定目标实例所属的实例类型;当负载情况信息符合预设的降级条件时,在多个不同性能的候选容器中确定实例类型对应的降级容器,降级容器的性能低于目标容器;将目标实例从目标容器迁移到降级容器中,得到性能降级后的目标实例,从而实现目标实例的弹性收缩;当负载情况信息符合预设的升级条件时,在多个不同性能的候选容器中确定实例类型对应的升级容器,升级容器的性能高于目标容器;将目标实例从目标容器迁移到升级容器中,得到性能升级后的目标实例,从而实现目标实例的弹性扩张。
本发明实施例可应用于云服务器,通过监测云服务器中实例实际的负载情况来判断是否需要将其迁移到更符合其工作效率所对应性能的容器中,从而实现云服务的弹性收缩。由此,采用本方案的云服务可提升计算资源的利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的弹性伸缩方法的场景示意图;
图1b是本发明实施例提供的弹性伸缩方法的流程示意图;
图2a是本发明实施例提供的弹性伸缩方法应用在云数据库中的流程示意图;
图2b是本发明实施例提供的弹性伸缩方法的实例创建页面示意图;
图2c是本发明实施例提供的弹性伸缩方法的低级权限管理页面示意图;
图2d是本发明实施例提供的弹性伸缩方法的高级操作页面示意图;
图2e是本发明实施例提供的弹性伸缩方法的SQL审查示意图;
图2f是本发明实施例提供的弹性伸缩方法的备份示意图;
图2g是本发明实施例提供的弹性伸缩方法的性能升降级示意图;
图3是本发明实施例提供的弹性伸缩装置的结构示意图;
图4是本发明实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种弹性伸缩方法、装置、服务器和存储介质。
其中,该弹性伸缩装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。
在一些实施例中,服务器也可以以终端的形式来实现。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云计算可以将计算任务分布在大量计算机构成的计算资源池上,计算资源池中部署了多种类型的虚拟资源,供外部客户选择使用。
云计算服务(即,云服务)主要分为公有云(Public Cloud)、私有云(PrivateCloud)和混合云(Hybrid Cloud)等种类,其中,公有云通常指第三方提供商为千百万用户提供的公共共享资源云服务;而私有云是将云基础设施与软硬件资源创建在防火墙内,而非云计算厂商的数据中心,私有云可供机构或企业内各部门共享数据中心内的资源,从而服务于本企业员工以及本企业的客户和供应商;混合云是结合了公有云和私有云的服务和部署模型。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。数据库可以通过数据库管理***(Database Management System,DBMS)来进行数据的存储、截取、安全保障、备份等基础功能。
目前,越来越多的云服务提供数据库服务,在本实施例中,提供了一种基于云技术的数据库弹性伸缩方法,同时适用于公有云、私有云,以及混合云等,本方案提出的数据库可以更加灵活、高效地弹性伸缩。
本发明实施例提出的弹性伸缩方法可应用于云服务。
例如,参考图1a,本发明实施例提出的弹性伸缩装置可搭载在控制服务器中,控制服务器可以监视目标实例的负载情况信息,以及确定搭载了目标实例的目标容器、确定目标实例所属的实例类型;当负载情况信息符合预设的降级条件时,控制服务器可以在N个不同性能的候选容器中将候选容容器i+1确定实例类型对应的降级容器,其中,候选容容器i+1的性能低于目标容器;然后,控制服务器可以控制目标实例从目标容器迁移到降级容器中,得到位于降级容器中性能降级后的目标实例,从而实现目标实例的弹性收缩;当负载情况信息符合预设的升级条件时,控制服务器可以在N个不同性能的候选容器中将候选容容器i+3确定实例类型对应的升级容器,其中,候选容容器i+3的性能高于目标容器;然后,控制服务器可以控制目标实例从目标容器迁移到升级容器中,得到升级容器中性能升级后的目标实例,从而实现目标实例的弹性扩张,其中,N可以为正整数。
以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
本发明实施例提供一种弹性伸缩方法,其中,弹性伸缩是指根据实例的工作情况对支持该实例的计算资源进行动态调整、分配等,以应对各种流量突增、流量骤减的情况,从而在维持业务稳定的同时降低成本,
如图1b所示,该弹性伸缩方法的具体流程可以如下:
101、获取目标实例的负载情况信息。
其中,负载情况信息是指在当前时刻或在历史时间段内,实例真实的工作效率信息,比如,负载情况信息可以包括实例的容量占用量、数据吞吐量、工作频率,等等。
其中,容量占用量是表示实例所占用服务器存储空间的大小的参数,比如,容量占用量可以包括磁盘空间占用量、内存空间占用量,等等。
其中,数据吞吐量(Throughput)是表示实例所处理请求数量的参数,比如,数据吞吐量可以包括每秒查询率(QPS,Queries-per-second)、宽带占用量、
其中,工作频率是表示实例的处理效率参数,比如,工作频率可以包括中央处理器(CPU,central processing unit)的时钟速度,等等。
在云服务中,实例(instance)是具有操作、管理数据库文件功能、运行在计算机内一个完全隔离环境中的***,用户可以通过实例对数据库中的数据做任何的操作,包括数据定义、数据查询、数据维护、数据库运行控制等。
其中,数据库可以存储在多个容器中,该容器可以是具有计算、存储、网络等资源的物理电子设备,该物理电子设备可以是由计算机、存储器、网络设施等构成的网络设施。
数据库可以被实例管理、操作等,每个数据库都可以存储在至少一个容器中,每一个容器中都可以设有一个或多个实例。
在本实施例中,提出了一种容器集群,容器集群中具有多种在硬件性能上各不相同的容器;数据库可以被存储在这些的容器中,即,数据库可以被存储在多个具有不同计算、存储、网络等资源的物理电子设备中;每个容器可以安装至少一个实例,用户可以通过实例来操作、管理数据库。
在本发明实施例中,目标实例可以被存储在目标容器中,步骤101可以通过监视目标容器中目标实例,来获取负载情况信息。
例如,在一些实施例中,可以实时统计目标实例的容量占用量、QPS和CPU的时钟速度,通过调取过去两个月的平均容量占用量、平均QPS和CPU的平均时钟速度作为负载情况信息。
在一些实施例中,步骤“获取目标实例的负载情况信息之前,还可以包括如下步骤:
(1)获取用户的实例创建指令,实例创建指令可以包括实例类型;
(2)在多个不同性能的候选容器中确定实例类型对应的目标容器;
(3)在目标容器中创建目标实例。
其中,用户的实例创建指令用于指示在容器中创建实例,实例创建指令可以包括实例名称、实例类型、创建时间、用户信息、实例权限等信息。
随着业务场景的不同,运行实例所需的计算资源、网络资源、存储资源等也会不同;例如,对于支付业务,运行实例需要大量的计算资源、网络资源、存储资源,等,且对容器的安全性要求高;而对于账号存储业务,运行实例所需的计算资源、网络资源、存储资源较少,对容器的安全性要求不高。
因此,在一些实施例中,可以将实例分为多个实例类型,不同实例类型的实例可以具有不同的性能配置参数,以便支持不同量级的业务场景。
例如,参考表1,表1所示的是微型实例、小型实例、中型实例和大型实例所需的资源,如下:
表1
其中,微型实例所需的容量为100G,QPS为每秒100~500次,CPU为1核,内存为1.5G;小型实例所需容量为300G,QPS为每秒500~2000次,CPU为2核,内存为3G;中型实例所需容量为600G,QPS为每秒2000~5000次,CPU为4核,内存为6G;大型实例所需容量为1200G,QPS为每秒5000~9000次,CPU为8核,内存为12G,等等。
例如,大型实例支持支付业务;微型实例支持账号存储业务,等等。
在一些实施例中,可以在实例创建指令可以包括性能配置参数,用户在创建目标实例时,可以不用指定实例类型,弹性伸缩装置可以根据性能配置参数来自动地判定目标实例的实例类型。
其中,性能配置参数是用户根据实际需求和应用场景,来预测目标实例在未来工作时的工作效率信息,比如,性能配置参数可以包括实例的配置容量、配置吞吐量、配置工作频率,等等。
例如,当用户为支付业务创建实例时,用户可以综合考虑支付业务的覆盖范围、业务内容等,为实例设置1200G的容量、每秒5000~9000次的QPS,等等。
弹性伸缩装置可以根据1200G的容量、每秒5000~9000次的QPS,将目标实例的实例类型确定为大型。
在本发明实施例中,提出了一种容器集群,该容器集群中包括了多个不同硬件性能的候选容器,这些候选容器可以提供不同的计算资源、存储资源、网络资源,等等。
为了提升容器资源的利用率、通过在物理层面进行资源隔离来提升实例的安全性,在一些实施例中,每种实例类型都可以对应适合其运行的硬件性能的容器,例如,小型实例对应小型容器、中型实例对应中型容器、大型实例对应大型容器,等等。
其中,小型容器的计算资源、存储资源、网络资源等均小于中型容器,同理,中型容器的计算资源、存储资源、网络资源等均小于大型容器,等等。
即,容器也类似于实例分类,按照容器物理性能的不同,容器也具有其对应的类型。
在步骤“(2)在多个不同性能的候选容器中确定实例类型对应的目标容器”时,可以确定实例类型所对应的容器类型,并从多个不同性能的候选容器中选取该容器类型的候选容器作为目标容器。
进一步地,在一些实施例中,提出了一种标签,该标签可以用于为容器进行标注,每种实例类型都可以对应具有某一标签的容器。
例如,参考表2,表2表示的是5个容器的IP地址(Internet Protocol Address)、容器类型、标签和当前的运行状态等容器信息,如下:
表2
在一些实施例中,标签为容器的固有属性,技术人员不能对其进行任意修改。
在一些实施例中,标签可以由技术人员标注在容器上,该标签可以由技术人员进行任意修改;例如,默认所有容器的标签均可以为“无”,技术人员可将IP为10.61.19.154的容器的标签修改为“重要”,将IP为9.22.26.33的容器的标签修改为“普通”,等等。
在一些实施例中,实例类型的实例和具有标签的容器可以是一一对应的关系,也可以是一对多、多对一或多对多的映射关系,等等。
比如,在一些实施例中,每一种实例类型都只对应一个标签;例如,实例类型A的实例只对应具有标签a的容器。
比如,在一些实施例中,每一种实例类型都可以对应多个标签;例如,实例类型A的实例可以对应具有标签a的容器、具有标签b的容器和具有标签c的容器。
比如,在一些实施例中,每一个标签都可以对应多种实例类型;例如,实例类型A的实例、实例类型B的实例和实例类型C的实例均可以对应具有标签a的容器。
比如,在一些实施例中,多种实例类型都可以和多个标签具有映射关系;例如,实例类型A的实例和实例类型B的实例都可以对应具有标签a的容器、具有标签b的容器和具有标签c的容器,等等。
需要注意的是,该映射关系可以由技术人员设定,例如,参考表3,表3所示的是标签与实例类型之间的映射关系,如下:
表3
为了提高实例的安全性,在步骤“(2)在多个不同性能的候选容器中确定实例类型对应的目标容器”时,可以在确定实例类型对应的容器类型后,在多个容器类型的候选容器中选取具有该标签的候选容器作为目标容器。
最后,在目标容器中创建该目标实例。
例如,实例创建指令可以包括实例名称:1号实例、实例类型:大型、用户名称:user1;大型实例对应的标签为important,则可以多个不同性能的候选容器中确定多个大型容器,再从中选取标签为important的大型容器作为目标容器,最后,在目标容器中创建该目标实例。
102、确定搭载了目标实例的目标容器,以及确定目标实例所属的实例类型。
在步骤101中介绍了如何在目标容器中创建目标实例,在一些实施例中,当目标容器中创建了目标实例后,可以获得目标容器返回的创建完成消息,该创建完成消息中可以包括创建时间、目标容器的IP地址、目标实例的名称、目标实例的实例类型等信息,该创建完成消息可以作为历史日志信息保存在本方案提出的弹性伸缩装置中,当需要确定搭载了目标实例的目标容器时,只需要在历史日志信息中查询即可得到。
类似地,确定目标实例所属的实例类型也可以通过查询历史日志信息即可得到。
103、当负载情况信息符合预设的降级条件时,在多个不同硬件配置的候选容器中确定实例类型对应的降级容器,降级容器的性能低于目标容器。
其中,预设的降级条件可以用于判断目标实例是否已经低于或即将低于目标容器的负载极限,即,是否目标容器的硬件性能高于目标实例运行所需的性能。
为了节省资源,可以通过性能降级的方式进行弹性收缩,在目标实例对性能的需求下降时,通过降级的方式将高硬件性能容器中的目标实例迁移到低硬件性能容器中,从而回收该高硬件性能容器,实现未使用资源的释放。
其中,高硬件性能容器是指硬件性能均高于低硬件性能容器的容器,低硬件性能容器是指硬件性能均低于低硬件性能容器的容器。
在一些实施例中,步骤103可以包括如下步骤:
(1)确定实例类型的性能配置参数;
(2)根据性能配置参数和预设的降级条件确定降级范围;
(3)当负载情况信息属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
其中,参考步骤102,在一些实施例中,创建完成消息可以包括性能配置参数,创建完成消息可以作为历史日志信息被存储在本地,故通过查询历史日志信息,即可确定实例类型的性能配置参数。
其中,预设的降级条件可以根据具体的云服务需求进行设置。
比如,在一些实施例中,预设的降级条件可以为:负载情况信息的数值低于1/2的性能配置参数时,进行性能降级;再比如,在一些实施例中,预设的降级条件可以为:负载情况信息的数值低于1/3的性能配置参数时,进行性能降级。
根据性能配置参数和预设的降级条件可以确定降级范围,当负载情况信息的数值落入该降级范围内时,可以在多个不同性能的候选容器中确定实例类型对应的降级容器。
例如,负载情况信息包括容量占用量,性能配置参数包括配置容量,容量占用量为40G、配置容量为100G时,当预设的降级条件可以为:负载情况信息的数值低于1/2的性能配置参数时,进行性能降级时,根据100G的配置容量,可确定降级范围为(-∞,50G),则40G容量占用量落入该降级范围(-∞,50G),因此负载情况信息属于降级范围,此时可以在多个不同性能的候选容器中确定实例类型对应的降级容器。
其中,降级容器为硬件性能低于目标容器的候选容器。
比如,在一些实施例中,性能配置参数可以包括配置容量,步骤“(2)根据性能配置参数和预设的降级条件确定降级范围”可以包括如下步骤:
根据配置容量和预设的降级条件,确定降级范围。
此时,在一些实施例中,负载情况信息可以包括容量占用量,步骤“(3)当负载情况信息属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器”可以包括如下步骤:
当容量占用量属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
比如,在一些实施例中,步骤“(2)性能配置参数可以包括配置吞吐量,根据性能配置参数和预设的降级条件确定降级范围”可以包括如下步骤:
根据配置吞吐量和预设的降级条件,确定降级范围。
此时,在一些实施例中,负载情况信息可以包括实际吞吐量,步骤“(3)当负载情况信息属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器”可以包括如下步骤:
当实际吞吐量属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
比如,在一些实施例中,步骤“(2)性能配置参数可以包括配置工作频率,根据性能配置参数和预设的降级条件确定降级范围”可以包括如下步骤:
根据配置工作频率和预设的降级条件,确定降级范围。
此时,在一些实施例中,负载情况信息可以包括实际工作频率,步骤“(3)当负载情况信息属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器”可以包括如下步骤:
当实际工作频率属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
比如,在一些实施例中,性能配置参数可以包括配置容量、配置吞吐量和配置工作频率,降级范围可以包括第一降级范围、第二降级范围和第三降级范围,预设的降级条件可以包括预设的第一降级条件、预设的第二降级条件和预设的第三降级条件,步骤“(2)根据性能配置参数和预设的降级条件确定降级范围”可以包括如下步骤:
根据配置容量和预设的第一降级条件,确定第一降级范围;
根据配置吞吐量和预设的第二降级条件,确定第二降级范围;
根据、配置工作频率和预设的第三降级条件,确定第三降级范围。
需要注意的是,第一降级条件、第二降级条件、第三降级条件可以相同也可以不同,例如,第一降级条件可以为:容量占用量低于1/2配置容量,第二降级条件可以为:容量占用量低于1/3配置容量,第三降级条件可以为:容量占用量低于1/3配置容量。
此时,在一些实施例中,负载情况信息可以包括负载情况信息可以包括容量占用量、实际吞吐量和实际工作频率,步骤“(3)当负载情况信息属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器”可以包括如下步骤:
当容量占用量属于第一降级范围,且实际吞吐量属于第二降级范围,且实际工作频率属于第三降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
在一些实施例中,提出一种类型排行信息,其中,在类型排行信息中实例类型按照实例的所需的硬件性能由高到低的顺序排列,例如,在类型排行信息[超大型、大型、中型、中小型、小型、微型、极微型]中,超大型实例所需的硬件性能最高,极微型实例所需的硬件性能最低。
在一些实施例中,步骤“在多个不同性能的候选容器中确定实例类型对应的降级容器”可以包括如下步骤:
获取类型排行信息;
根据类型排行信息确定目标实例的实例类型的下一实例类型;
在多个不同性能的候选容器中,将下一实例类型对应的候选容器选取为降级容器。
例如,目标实例的实例类型为中小型时,目标实例的实例类型的下一实例类型为小型,则在多个不同性能的候选容器中,可以将小型实例对应的候选容器选取为降级容器。
104、将目标实例从目标容器迁移到降级容器中,得到性能降级后的目标实例,从而实现目标实例的弹性收缩。
参考图1a,本方案提出的弹性伸缩装置可以搭载在控制服务器中,控制服务器可以将目标容器中的目标实例牵引到降级容器中,得到性能降级后的目标实例,从而实现目标实例的弹性收缩。
105、当负载情况信息符合预设的升级条件时,在多个不同硬件配置的候选容器中确定实例类型对应的升级容器,升级容器的性能高于目标容器。
其中,预设的升级条件可以用于判断目标实例是否已经超过于或即将超过目标容器的负载极限,即,是否目标容器的硬件性能低于目标实例运行所需的性能。
为了节省资源,可以通过性能升级的方式进行弹性扩张,在目标实例对性能的需求上升时,通过升级的方式将低硬件性能容器中的目标实例迁移到高硬件性能容器中,从而为目标实例分配更多的资源。
在一些实施例中,步骤104可以包括如下步骤:
(1)确定实例类型的性能配置参数;
(2)根据性能配置参数和预设的升级条件确定升级范围;
(3)当负载情况信息属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
其中,参考步骤102,在一些实施例中,创建完成消息可以包括性能配置参数,创建完成消息可以作为历史日志信息被存储在本地,故通过查询历史日志信息,即可确定实例类型的性能配置参数。
其中,预设的升级条件可以根据具体的云服务需求进行设置。
比如,在一些实施例中,预设的升级条件可以为:负载情况信息的数值高于1.25倍的性能配置参数时,进行性能升级;再比如,在一些实施例中,预设的升级条件可以为:负载情况信息的数值高于1.5倍的性能配置参数时,进行性能升级。
根据性能配置参数和预设的升级条件可以确定升级范围,当负载情况信息的数值落入该升级范围内时,可以在多个不同性能的候选容器中确定实例类型对应的升级容器。
例如,负载情况信息包括容量占用量,性能配置参数包括配置容量,容量占用量为130G、配置容量为100G时,当预设的升级条件可以为:负载情况信息的数值高于1.25倍的性能配置参数时,进行性能升级时,根据100G的配置容量,可确定升级范围为(125,+∞),则130G容量占用量落入该升级范围(125,+∞),因此负载情况信息属于升级范围,此时可以在多个不同性能的候选容器中确定实例类型对应的升级容器。
其中,升级容器为硬件性能高于目标容器的候选容器。
在一些实施例中,性能配置参数可以包括配置容量,步骤“(2)根据性能配置参数和预设的升级条件确定升级范围”可以包括如下步骤:
根据配置容量和预设的升级条件,确定升级范围。
此时,在一些实施例中,负载情况信息可以包括容量占用量,步骤“(3)当负载情况信息属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器”可以包括如下步骤:
当容量占用量属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
在一些实施例中,性能配置参数可以包括配置吞吐量,步骤“(2)根据性能配置参数和预设的升级条件确定升级范围”可以包括如下步骤:
根据配置吞吐量和预设的升级条件,确定升级范围。
此时,在一些实施例中,负载情况信息可以包括实际吞吐量,步骤“(3)当负载情况信息属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器”可以包括如下步骤:
当实际吞吐量属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
在一些实施例中,性能配置参数可以包括配置工作频率,步骤“(2)根据性能配置参数和预设的升级条件确定升级范围”可以包括如下步骤:
根据配置工作频率和预设的升级条件,确定升级范围。
此时,在一些实施例中,负载情况信息可以包括实际工作频率,步骤“(3)当负载情况信息属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器”可以包括如下步骤:
当实际工作频率属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
在一些实施例中,性能配置参数可以包括配置容量、配置吞吐量和配置工作频率,升级范围可以包括第一升级范围、第二升级范围和第三升级范围,预设的升级条件可以包括预设的第一升级条件、预设的第二升级条件和预设的第三升级条件,步骤“(2)根据性能配置参数和预设的升级条件确定升级范围”可以包括如下步骤:
根据配置容量和预设的第一升级条件,确定第一升级范围;
根据配置吞吐量和预设的第二升级条件,确定第二升级范围;
根据、配置工作频率和预设的第三升级条件,确定第三升级范围。
需要注意的是,第一升级条件、第二升级条件、第三升级条件可以相同也可以不同,例如,第一升级条件可以为:容量占用量高于1.05倍配置容量,第二升级条件可以为:容量占用量高于1.2倍配置容量,第三降级条件可以为:容量占用量高于1.25倍配置容量。
此时,在一些实施例中,负载情况信息可以包括负载情况信息可以包括容量占用量、实际吞吐量和实际工作频率,步骤“(3)当负载情况信息属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器”可以包括如下步骤:
当容量占用量属于第一升级范围,或实际吞吐量属于第二升级范围,或实际工作频率属于第三升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
需要注意的是,与性能降级不同,只要满足:容量占用量属于第一升级范围、实际吞吐量属于第二升级范围、实际工作频率属于第三升级范围三个条件中的任一个,即可进行性能升级。
在一些实施例中,步骤“在多个不同性能的候选容器中确定实例类型对应的升级容器”可以包括如下步骤:
获取类型排行信息;
根据类型排行信息确定目标实例的实例类型的上一实例类型;
在多个不同性能的候选容器中,将上一级实例类型对应的候选容器选取为升级容器。
在一些实施例中,在类型排行信息中实例类型按照实例的所需的硬件性能由高到低的顺序排列,例如,在类型排行信息[超大型、大型、中型、中小型、小型、微型、极微型]中,超大型实例所需的硬件性能最高,极微型实例所需的硬件性能最低。
例如,目标实例的实例类型为中小型时,目标实例的实例类型的上一实例类型为中型,则在多个不同性能的候选容器中,可以将中型实例对应的候选容器选取为升级容器。
106、将目标实例从目标容器迁移到升级容器中,得到性能升级后的目标实例,从而实现目标实例的弹性扩张。
参考图1a,本方案提出的弹性伸缩装置可以搭载在控制服务器中,控制服务器可以将目标容器中的目标实例牵引到升级容器中,得到性能升级后的目标实例,从而实现目标实例的弹性扩张。
需要注意的是,在一些实施例中,为了提高稳定性以及保证数据安全,目标实例可以在多个目标容器中被安装,这些目标容器可以是主从(Master-Slave)架构的,当Master目标容器出现故障时,可以进行主从切换,将Slave目标容器提升为新的Master目标容器,从而使得其搭载的目标实例可以继续工作。
由上可知,本发明实施例可以获取目标实例的负载情况信息;确定搭载了目标实例的目标容器,以及确定目标实例所属的实例类型;当负载情况信息符合预设的降级条件时,在多个不同性能的候选容器中确定实例类型对应的降级容器,降级容器的性能低于目标容器;将目标实例从目标容器迁移到降级容器中,得到性能降级后的目标实例,从而实现目标实例的弹性收缩;当负载情况信息符合预设的升级条件时,在多个不同性能的候选容器中确定实例类型对应的升级容器,升级容器的性能高于目标容器;将目标实例从目标容器迁移到升级容器中,得到性能升级后的目标实例,从而实现目标实例的弹性扩张。
由此,本发明实施例可应可以用于云服务器,通过监测容器中实例实际的负载情况来判断是否需要将其迁移到更符合其工作效率所对应性能的容器中,从而实现云服务的弹性收缩,无需用户操作和设置,实现了全自动地资源分配。由此,采用本方案的云服务可提升计算资源的利用率。
根据上述实施例所描述的方法,以下将作进一步详细说明。
在本实施例中,将以数据库云平台为例,对本发明实施例的方法进行详细说明。
本发明实施例提出了一种具有实例弹性伸缩功能的云服务,用户可以在云平台上使用该云服务,通过该云服务,用户可以创建实例、编辑实例、维护实例,等等,参考图2a,其步骤如下:
201、显示云平台的实例创建页面,获取用户通过实例创建页面触发的实例创建指令,实例创建指令包括实例类型和用户权限等信息。
在一些实施例中,实例创建页面可以包括实例名称控件、实例类型控件、实例场景控件、弹性伸缩控件、用户权限控件、实例创建控件,等等。
其中,上述控件可以以文字框、选项、图标、按钮等形式表现。
例如,参考图2b,实例创建页面可以包括实例名称控件、实例类型控件、实例场景控件、弹性伸缩控件、用户权限控件、实例创建控件;用户可以在实例名称控件中输入实例的名称,用户可以在实例类型控件中点击并不同的实例类型,并查看不同的实例类型所对应的配置容量、配置QPS和价格;用户可以在实例场景控件中选取实例场景;用户可以通过弹性伸缩控件开启或关闭实例的弹性伸缩功能,用户可以通过用户权限控件管理实例的权限。
202、在多个不同性能的候选容器中确定实例类型对应的目标容器,并在目标容器中创建目标实例。
在一些实施例中,这些候选容器可以根据其硬件性能被划分为多种容器类型,例如,参考表4,容器根据容量、CPU核、内存、QPS被划分为极微型、微型、小型、中小型、中型、大型和超大型,如下:
表4
其中,容器可以是具有网络服务器,一共670个容器,其中,编号第1~200的199个容器在硬件配置上相同,即容器的性能相同。同理,编号第201~350的149个容器在硬件配置上相同,等等。
在一些实施例中,容器除了具有其固有的容器类型,还可以具有技术人员后天为其添加的标签,该标签可以由技术人员根据需求设置。
例如,参考表5,表5为149个微型容器的标签,其中,该表5中只有编号为203和349的容器具有重要标签:
表5
由于不同业务场景下的实例的读写请求比例是不一样的,在本实施例中,通过将相同业务场景下的实例安装在同一硬件配置的容器中,可以有效提高资源利用率。
因此,当在多个不同性能的候选容器中确定实例类型对应的多个候选容器时,还可以进一步地根据实例场景确定标签,从而在实例类型对应的多个候选容器中选取具有该标签的容器作为目标容器。
例如,参考图2b,用户通过实例类型控件,将目标实例的实例类型选取为微型;通过实例场景控件,将目标实例的实例场景选取为支付,而假设支付对应的标签为重要,则可以在容器编号201~350中将标签为重要的容器,即编号为203和350的容器确定为目标容器。
需要注意的是,当目标容器过多时,可以在其中选取一个作为创建目标实例的目标容器。
其中,选取的方式具有多种,例如,将编号最大的作为目标容器;再例如,将编号最小的作为目标容器;再例如,在其中随机选取一个作为目标容器,等等。
在一些实施例中,可以通过Linux Cgroup(Linux Control Groups,Linux内核提供的一种资源控制功能),在目标容器为目标实例配置资源。
其中,cgroup可以为实例分配其可以使用内存、CPU、硬盘容量、网络带宽等。
在Linux中,Cgroups可以将资源以操作接口的形式展现在文件中,在文件中可以包括内存子目录、CPU子目录、硬盘容量子目录、网络带宽子目录等,本方案实施例可以通过进入这些子目录来修改该文件,从而实现对资源的再分配,将资源配置给目标实例。
203、根据用户通过实例创建页面触发的自动弹性伸缩控件触发自动弹性伸缩功能,以及通过用户权限控件触发的用户权限功能。
在本发明实施例中,实例可在使用过程中自动地进行弹性伸缩,其中,不仅分配给该实例的内存可以弹性伸缩,分配给该实例的计算资源,如CPU核心数、内存大小、网络带宽等,均可以弹性伸缩。
本发明实施例中,可以通过监测实例的负载情况,基于该负载情况来将实例迁移到不同性能配置的容器中,从而实现弹性伸缩。
参考图2b,用户可以通过自动弹性伸缩控件来实现开启或关闭自动弹性伸缩功能。
由于用户操作云数据库时往往会出现误操作和影响较大的操作,为了防止用户做出这些操作、提高云数据库的安全性,在本发明实施例中,提出用户权限功能来限制用户的操作权限。
用户可以通过用户权限控件来管理用户权限,比如,参考图2b,当用户点击该用户权限控件时,可以显示权限管理页面。
其中,权限是指用户可使用操作语句的权限。
其中,操作语句是数据库语言中定义的语句,例如,以SQL(Structured QueryLanguage,一种具有数据操纵和数据定义等多种功能的数据库语言)为例,SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。
其中,数据查询语言DQL包括选取(SELECT)、来源(FROM)、查询条件(WHERE);数据操纵语言DML包括***(INSERT)、更新(UPDATE)、删除(DELETE);数据定义语言DDL可以创建数据库中的各种对象,如创建表、视图、索引、同义词、聚簇(CREATE TABLE / VIEW / INDEX/ SYN / CLUSTER)等;数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等,数据控制语言DCL包括授权(GRANT)、回滚(ROLLBACK)、提交(COMMIT),等。
其中,参考图2c,低级权限管理页面可以默认给与用户使用选取(Select)、***(Insert)、更新(Update)、删除(Delete)等对云数据库安全性影响非常低的操作语句的权限,默认移除用户使用执行(Excute)、查找(Show Viwe)等对云数据库安全性影响较低的操作语句的的权限。
在一些实施例中,为了进一步地提升安全性,用户是无法在低级权限管理页面获取特殊权限如创建表(CreateTable)、修改表(AlterTable)等对云数据库安全性影响较高的特殊权限的,在本实施例中,用户可以联系数据库管理员,数据库管理员是可以被赋予所有高级权限的,数据库管理员可以在高级操作页面执行云数据库安全性影响较高的操作语句,数据库管理员进行的所有操作可以保存在操作日志中,以方便日后进行审核回溯、降低安全风险。
其中,参考图2d,高级操作页面可以包括创建数据库控件、批量SQL操作控件、SQL查询控件、SQL日志查询控件、线上数据定义(online DDL)控件等,数据库管理员可以通过创建数据库控件创建数据库;通过批量SQL操作控件进行批量SQL操作;通过SQL查询控件进行SQL查询;通过线上数据定义控件进行线上数据定义。
其中,在主从架构的云数据库中,DDL操作往往会导致主设备和从设备之间的高度延迟问题,因此,在本实施例中,在高级操作页面提供online DDL控件,用户通过线上数据定义可以有效减少DDL操作过程中对于数据表的锁表时间,从而减少对线上业务的影响,提高了操作效率。
204、对目标实例进行SQL审核和数据备份,以及监测目标实例的负载情况信息。
在本发明实施例中,可以对目标实例进行SQL审核。
例如,参考图2e,当用户通过目标实例对云数据库进行SQL操作时,可以通过Inception模块来对SQL操作进行自动审核,当通过审核后,该SQL操作才可以在线上对云数据库进行操作,当操作完成后,可以将该SQL操作备份到回滚服务器中。
在一些实施例中,SQL操作在线上对云数据库进行操作后,需要对此次操作进行实时的热备份,以便之后能进行数据恢复。
其中,Inception是一个MySQL的代理模块,能够自动审核、执行并备份SQL操作。
在一些实施例中,通过Inception可以审核SQL操作是否为DDL操作,当DDL操作不包含主键(Primary Key),则不通过该SQL操作;当DDL操作包含主键,则通过并执行该SQL操作。
此外,在一些实施例中,Inception还可以审核此次DDL操作所涉及的变更数据量是否超过预设最大阈值,当DDL操作所涉及的变更数据量是超过预设最大阈值时,调用onlineDDL接口来对此次DDL操作所涉及的变更数据量进行备份。
在本发明实施例中,可以对目标实例以及其它实例所操控的云数据库进行数据备份,在一些实施例中,可以将定时将所有实例对该云数据库进行操作的的操作日志(binlog)上传到备份中心进行实时的热备份。
由于在一些实施例中,云数据库可以存储在多个目标容器中,这些目标容器可以是主从架构的,当Master目标容器出现故障时,可以进行主从切换,将Slave目标容器提升为新的Master目标容器,从而使得其搭载的云数据库可以继续使用。
因此,参考图2f,Master目标容器中的云数据库可以定时冷备份到多个Slave目标容器中,当Master目标容器出现故障时,可以进行主从切换,新的Master目标容器可以在工作时将其binlog上传到备份中心进行定时冷备份。
其中,热备份时指在工作时无需宕机即将Binlog发送给备份中心,冷备份是指根据数据的某个时间点的数据状态进行数据拷贝,拷贝过程不影响当前数据库的读写。
在一些实施例中,用户在云平台对该云数据库进行了误操作,则可以通直接通过Inception保存在回滚服务器中的备份数据进行数据恢复。
在一些实施例中,当在某一时刻数据库管理员出现了对该云数据库的误操作,希望将云数据库恢复到该时刻时,可以采用最近的一次冷备份的数据库和热备份的binlog来进行数据恢复。
205、基于目标实例的负载情况信息,对目标实例进行性能降级或性能升级,从而实现目标实例的弹性伸缩。
在一些实施例中,为了实现弹性伸缩,参考图1a,控制服务器可以执行如下步骤:
获取目标实例的负载情况信息;
确定搭载了目标实例的目标容器,以及确定目标实例所属的实例类型;
当负载情况信息符合预设的降级条件时,在多个不同性能的候选容器中确定实例类型对应的降级容器,降级容器的性能低于目标容器;
将目标实例从目标容器迁移到降级容器中,得到性能降级后的目标实例,从而实现目标实例的弹性收缩;
当负载情况信息符合预设的升级条件时,在多个不同性能的候选容器中确定实例类型对应的升级容器,升级容器的性能高于目标容器;
将目标实例从目标容器迁移到升级容器中,得到性能升级后的目标实例,从而实现目标实例的弹性扩张。
参考图2g,当目标实例进行性能降级时,目标实例可以从其所在的目标服务器迁出,并迁入至降级容器或升级容器,从而在硬件层面上实现资源隔离,以及提高资源利用率。
在一些实施例中,目标实例可以被分片安装在多个目标容器中,当目标实例进行性能降级时,可以将其分片分别迁移至多个升级容器或多个降级容器中。例如,目标实例A被分为分片A1和分片A2,其中,分片A1被安装在目标服务器a1中,分片A2被安装在目标服务器a2中;则目标实例A进行性能降级时,分片A1可以迁移至降级服务器b1,分片A2可以迁移至降级服务器b2;目标实例A进行性能升级时,分片A1可以迁移至升级服务器c1,分片A2可以迁移至升级服务器c2,等等。
为了使得弹性伸缩更加符合用户的使用***台提供了实例编辑,其中,参考图2a,实例编辑页面中可以包括弹性伸缩控件,当用户通过该弹性伸缩控件触发自动弹性伸缩功能后,云服务可以采用本发明实施例提出的弹性伸缩方法进行实例的性能升降级;当用户通过该弹性伸缩控件关闭自动弹性伸缩功能后,云服务可以禁止自动弹性伸缩功能。
为了进一步提高用户的使用体验,当该控制服务器对用户创建的目标实例进行自动弹性伸缩前,该控制服务器可以通过邮件、短信消息、即时通讯应用消息等方式将此次自动弹性伸缩的消息告知用户。
在一些实施例中,控制服务器可以定期地监测目标实例在两个月内的负载情况信息,如容量占用量、实际QPS、实际CPU速度等指标,同时符合下述三个条件时,可以自动触发该目标实例的弹性收缩,使得该目标实例被迁移到降级容器中:
条件1:容量占用量低于该目标实例的性能配置参数中配置容量的1/2;
条件2:实际QPS低于该目标实例的性能配置参数中配置QPS的1/3;
条件3:实际CPU速度低于该目标实例的性能配置参数中配置CPU速度的1/2。
在一些实施例中,,控制服务器可以定期地监测目标实例在两个月内的负载情况信息,如容量占用量、实际QPS、实际内存占用量,只要符合下述三个条件中任意一个条件时,可以自动触发该目标实例的弹性扩张,使得该目标实例被迁移到升级容器中:
条件1:容量占用量高于该目标实例的性能配置参数中配置容量的1.2倍;
条件2:实际QPS高于该目标实例的性能配置参数中配置QPS的1.5倍;
条件3:实际内存占用量高于该目标实例的性能配置参数中配置内存的1.25倍。
例如,假设目标实例是微型实例,该目标实例被搭载在微型容器中,其中,用户将该目标实例的配置容量设为100G,将该目标实例的配置QPS设为每秒50~500次,将该目标实例的配置内存设为4G,将该目标实例的配置CPU速度设为3GHZ;当检测到该目标实例的容量占用量为40G、实际QPS为每秒10次、实际CPU速度为1.1GHZ,则将极微型容器确认为降级容器,将该目标实例从微型容器中迁移到极微型容器中。
例如,假设目标实例是微型实例,该目标实例被搭载在微型容器中,其中,用户将该目标实例的配置容量设为100G,将该目标实例的配置QPS设为每秒50~500次,将该目标实例的配置内存设为4G,将该目标实例的配置CPU速度设为3GHZ;当检测到该目标实例的容量占用量为130G、实际QPS为每秒900次、实际CPU速度为6GHZ,则将小型容器确认为升级容器,将该目标实例从微型容器中迁移到小型容器中。
其中,性能配置参数可以是用户创建该目标实例时,为该目标实例设置的容量、QPS、CUP速度、内存大小等参数。
比如,参考图2b,云平台的实例编辑页面可以包括目标实例的类型设置控件,用户通过该类型设置控件可以设置目标实例的实例类型,不同的实例类型对应不同的性能配置参数。
例如,微型实例对应100G的配置容量、每秒50~500次的配置QPS。
在一些实施例中,极微型实例对应的容器可以为极微型容器,微型实例对应的容器可以为微型容器,小型实例对应的容器可以为小型容器,中小型实例对应的容器可以为中小型容器,中型实例对应的容器可以为中型容器,大型实例对应的容器可以为大型容器,超大型实例对应的容器可以为超大型容器,等等,技术人员可以根据容器的硬件性能,将容器划分为多种类型来与实例类型相对应。
在一些实施例中,每种实例类型都可以具有对应的上一实例类型和下一实例类型,因此,目标容器都可以具有其对应的降级容器和升级容器,即上一实例类型对应降级容器,下一实例类型对应降级容器。
例如,微型实例类型的上一实例类型为小型实例类型、下一实例类型为极微型实例类型,因此,微型容器的升级容器为硬件性能更好的小型容器、降级容器为硬件性能更差的极微型容器,等等。
再例如,大型实例类型的上一实例类型为中型实例类型、下一实例类型为超大型实例类型,因此,大型容器的升级容器为超大型容器、降级容器为中型容器,等等。
其中,具体的实例的创建步骤以及该实例的弹性收缩步骤以可以参考步骤101~106,在此不做赘述。
本发明的发明人实验后发现,本方案提供的云服务在高负载时,超额配置实例的数量减少了40%;该云服务的实例平均在一个月内自升级容器14次、自动降级容器81次,降低了容器空间的空置率,有效地提高了容器中计算资源的利用率。
由上可知,本发明实施例可以显示云平台的实例创建页面,获取用户通过实例创建页面触发的实例创建指令,实例创建指令包括实例类型、用户权限信息;在多个不同性能的候选容器中确定实例类型对应的目标容器,并在目标容器中创建目标实例;根据用户通过实例创建页面触发的自动弹性伸缩控件触发自动弹性伸缩功能,以及通过用户权限控件触发的用户权限功能;对目标实例进行SQL审核和数据备份,以及监测目标实例的负载情况信息;基于目标实例的负载情况信息,对目标实例进行性能降级或性能升级,从而实现目标实例的弹性伸缩。
本方案可以有效解决目前云服务中由于用户权限过大导致的误操作的问题,以及,实例之间***资源争抢混乱、严重的问题,此外,采用本方案的云服务可提升计算资源的利用率。
由此,本发明实施例可应可以用于云服务器,通过监测实例实际的工作效率来判断是否需要将其迁移到更符合其工作效率所对应性能的容器中,从而实现云服务的弹性收缩。
为了更好地实施以上方法,本发明实施例还提供一种弹性伸缩装置,该弹性伸缩装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
比如,在本实施例中,将以弹性伸缩装置具体集成在服务器中为例,对本发明实施例的方法进行详细说明。
例如,如图3所示,该弹性伸缩装置可以包括情况单元301、目标单元302、降级确定单元303、降级迁移单元304、升级确定单元305以及升级迁移单元306,如下:
(一)情况单元301:
情况单元301可以用于获取目标实例的负载情况信息。
在一些实施例中,情况单元301在可以用于获取目标实例的负载情况信息之前,还可以用于执行以下步骤:
获取用户的实例创建指令,实例创建指令可以包括实例类型;
在多个不同性能的候选容器中确定实例类型对应的目标容器;
在目标容器中创建目标实例。
(二)目标单元302:
目标单元302可以用于确定搭载了目标实例的目标容器,以及确定目标实例所属的实例类型。
(三)降级确定单元303:
降级确定单元303可以用于当负载情况信息符合预设的降级条件时,在多个不同性能的候选容器中确定实例类型对应的降级容器,降级容器的性能低于目标容器。
在一些实施例中,降级确定单元303,可以包括:
获取类型排行信息;
根据类型排行信息确定目标实例的实例类型的下一实例类型;
在多个不同性能的候选容器中,将下一实例类型对应的候选容器选取为降级容器。
在一些实施例中,降级确定单元303,可以包括降级参数子单元、降级范围子单元以及降级确定子单元,如下:
(1)降级参数子单元:
降级参数子单元可以用于确定实例类型的性能配置参数。
(2)降级范围子单元:
降级范围子单元可以用于根据性能配置参数和预设的降级条件确定降级范围。
在一些实施例中,性能配置参数可以包括配置容量,降级范围子单元可以用于执行以下步骤:
根据配置容量和预设的降级条件,确定降级范围。
在一些实施例中,性能配置参数可以包括配置吞吐量,降级范围子单元可以用于执行以下步骤:
根据配置吞吐量和预设的降级条件,确定降级范围。
在一些实施例中,性能配置参数可以包括配置工作频率,降级范围子单元可以用于,可以包括:
根据配置工作频率和预设的降级条件,确定降级范围。
在一些实施例中,性能配置参数可以包括配置容量、配置吞吐量和配置工作频率,降级范围可以包括第一降级范围、第二降级范围和第三降级范围,预设的降级条件可以包括预设的第一降级条件、预设的第二降级条件和预设的第三降级条件,降级范围子单元可以用于执行以下步骤:
根据配置容量和预设的第一降级条件,确定第一降级范围;
根据配置吞吐量和预设的第二降级条件,确定第二降级范围;
根据、配置工作频率和预设的第三降级条件,确定第三降级范围。
(3)降级确定子单元:
降级确定子单元可以用于当负载情况信息属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
在一些实施例中,负载情况信息可以包括容量占用量,降级确定子单元可以用于执行以下步骤:
当容量占用量属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
负载情况信息可以包括实际吞吐量,降级确定子单元可以用于执行以下步骤:
在一些实施例中,当实际吞吐量属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
在一些实施例中,负载情况信息可以包括实际工作频率,降级确定子单元可以用于执行以下步骤:
当实际工作频率属于降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
在一些实施例中,负载情况信息可以包括负载情况信息可以包括容量占用量、实际吞吐量和实际工作频率,降级确定子单元可以用于执行以下步骤:
当容量占用量属于第一降级范围,且实际吞吐量属于第二降级范围,且实际工作频率属于第三降级范围时,在多个不同性能的候选容器中确定实例类型对应的降级容器。
(四)降级迁移单元304:
降级迁移单元304可以用于将目标实例从目标容器迁移到降级容器中,得到性能降级后的目标实例,从而实现目标实例的弹性收缩。
(五)升级确定单元305:
升级确定单元305可以用于当负载情况信息符合预设的升级条件时,在多个不同性能的候选容器中确定实例类型对应的升级容器,升级容器的性能高于目标容器。
在一些实施例中,升级确定单元305,可以包括:
获取类型排行信息;
根据类型排行信息确定目标实例的实例类型的上一实例类型;
在多个不同性能的候选容器中,将上一级实例类型对应的候选容器选取为升级容器。
在一些实施例中,升级确定单元305,可以包括升级参数子单元、升级范围子单元以及升级确定子单元,如下:
(1)升级参数子单元:
升级参数子单元可以用于确定实例类型的性能配置参数。
(2)升级范围子单元:
升级范围子单元可以用于根据性能配置参数和预设的升级条件确定升级范围。
在一些实施例中,性能配置参数可以包括配置容量,升级范围子单元可以用于执行以下步骤:
根据配置容量和预设的升级条件,确定升级范围。
在一些实施例中,性能配置参数可以包括配置吞吐量,升级范围子单元可以用于执行以下步骤:
根据配置吞吐量和预设的升级条件,确定升级范围。
在一些实施例中,性能配置参数可以包括配置工作频率,升级范围子单元可以用于执行以下步骤:
根据配置工作频率和预设的升级条件,确定升级范围。
在一些实施例中,性能配置参数可以包括配置容量、配置吞吐量和配置工作频率,升级范围可以包括第一升级范围、第二升级范围和第三升级范围,预设的升级条件可以包括预设的第一升级条件、预设的第二升级条件和预设的第三升级条件,升级范围子单元可以用于执行以下步骤:
根据配置容量和预设的第一升级条件,确定第一升级范围;
根据配置吞吐量和预设的第二升级条件,确定第二升级范围;
根据、配置工作频率和预设的第三升级条件,确定第三升级范围。
(3)升级确定子单元:
升级确定子单元可以用于当负载情况信息属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
在一些实施例中,负载情况信息可以包括容量占用量,升级确定子单元可以用于执行以下步骤:
当容量占用量属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
在一些实施例中,负载情况信息可以包括实际吞吐量,升级确定子单元可以用于执行以下步骤:
当实际吞吐量属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
在一些实施例中,负载情况信息可以包括实际工作频率,升级确定子单元可以用于执行以下步骤:
当实际工作频率属于升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
在一些实施例中,负载情况信息可以包括负载情况信息可以包括容量占用量、实际吞吐量和实际工作频率,升级确定子单元可以用于执行以下步骤:
当容量占用量属于第一升级范围,或实际吞吐量属于第二升级范围,或实际工作频率属于第三升级范围时,在多个不同性能的候选容器中确定实例类型对应的升级容器。
(六)升级迁移单元306:
升级迁移单元306可以用于将目标实例从目标容器迁移到升级容器中,得到性能升级后的目标实例,从而实现目标实例的弹性扩张。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例的弹性伸缩装置由情况单元获取目标实例的负载情况信息;由目标单元确定搭载了目标实例的目标容器,以及确定目标实例所属的实例类型;由降级确定单元当负载情况信息符合预设的降级条件时,在多个不同性能的候选容器中确定实例类型对应的降级容器,降级容器的性能低于目标容器;由降级迁移单元将目标实例从目标容器迁移到降级容器中,得到性能降级后的目标实例,从而实现目标实例的弹性收缩;由升级确定单元当负载情况信息符合预设的升级条件时,在多个不同性能的候选容器中确定实例类型对应的升级容器,升级容器的性能高于目标容器;由升级迁移单元将目标实例从目标容器迁移到升级容器中,得到性能升级后的目标实例,从而实现目标实例的弹性扩张。
由此,采用本方案的云服务可提升计算资源的利用率。
本发明实施例还提供一种电子设备,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑,等等;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,等等。
在一些实施例中,该弹性伸缩装置还可以集成在多个电子设备中,比如,弹性伸缩装置可以集成在多个服务器中,由多个服务器来实现本发明的弹性伸缩方法。
在本实施例中,将以本实施例的电子设备是服务器为例进行详细描述,比如,如图4所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403、输入模块404以及通信模块405等部件。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。在一些实施例中,处理器401可包括一个或多个处理核心;在一些实施例中,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
服务器还包括给各个部件供电的电源403,在一些实施例中,电源403可以通过电源管理***与处理器401逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入模块404,该输入模块404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
该服务器还可包括通信模块405,在一些实施例中通信模块405可以包括无线模块,服务器可以通过该通信模块405的无线模块进行短距离无线传输,从而为用户提供了无线的宽带互联网访问。比如,该通信模块405可以用于帮助用户收发电子邮件、浏览网页和访问流式媒体等。
尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取目标实例的负载情况信息;
确定搭载了目标实例的目标容器,以及确定目标实例所属的实例类型;
当负载情况信息符合预设的降级条件时,在多个不同性能的候选容器中确定实例类型对应的降级容器,降级容器的性能低于目标容器;
将目标实例从目标容器迁移到降级容器中,得到性能降级后的目标实例,从而实现目标实例的弹性收缩;
当负载情况信息符合预设的升级条件时,在多个不同性能的候选容器中确定实例类型对应的升级容器,升级容器的性能高于目标容器;
将目标实例从目标容器迁移到升级容器中,得到性能升级后的目标实例,从而实现目标实例的弹性扩张。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,采用本方案的云服务可提升计算资源的利用率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种弹性伸缩方法中的步骤。例如,该指令可以执行如下步骤:
获取目标实例的负载情况信息;
确定搭载了目标实例的目标容器,以及确定目标实例所属的实例类型;
当负载情况信息符合预设的降级条件时,在多个不同性能的候选容器中确定实例类型对应的降级容器,降级容器的性能低于目标容器;
将目标实例从目标容器迁移到降级容器中,得到性能降级后的目标实例,从而实现目标实例的弹性收缩;
当负载情况信息符合预设的升级条件时,在多个不同性能的候选容器中确定实例类型对应的升级容器,升级容器的性能高于目标容器;
将目标实例从目标容器迁移到升级容器中,得到性能升级后的目标实例,从而实现目标实例的弹性扩张。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中提供的云服务方面或者数据库方面的各种可选实现方式中提供的方法。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种弹性伸缩方法中的步骤,因此,可以实现本发明实施例所提供的任一种弹性伸缩方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种弹性伸缩方法、装置、服务器和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种弹性伸缩方法,其特征在于,包括:
获取目标实例的负载情况信息;
确定搭载了所述目标实例的目标容器,以及确定所述目标实例所属的实例类型;
当所述负载情况信息符合预设的降级条件时,在多个不同性能的候选容器中确定所述实例类型对应的降级容器,所述降级容器的性能低于所述目标容器;
将所述目标实例从所述目标容器迁移到所述降级容器中,得到性能降级后的目标实例,从而实现目标实例的弹性收缩;
当所述负载情况信息符合预设的升级条件时,在多个不同性能的候选容器中确定所述实例类型对应的升级容器,所述升级容器的性能高于所述目标容器;
将所述目标实例从所述目标容器迁移到所述升级容器中,得到性能升级后的目标实例,从而实现目标实例的弹性扩张。
2.如权利要求1所述的弹性伸缩方法,其特征在于,所述当所述负载情况信息符合预设的降级条件时,在多个不同性能的候选容器中确定所述实例类型对应的降级容器,包括:
确定所述实例类型的性能配置参数;
根据所述性能配置参数和预设的降级条件确定降级范围;
当所述负载情况信息属于所述降级范围时,在多个不同性能的候选容器中确定所述实例类型对应的降级容器。
3.如权利要求2所述的弹性伸缩方法,其特征在于,所述性能配置参数包括配置容量,所述根据所述性能配置参数和预设的降级条件确定降级范围,包括:
根据所述配置容量和预设的降级条件,确定降级范围;
所述负载情况信息包括负载情况信息容量占用量,所述当所述负载情况信息属于所述降级范围时,在多个不同性能的候选容器中确定所述实例类型对应的降级容器,包括:
当所述负载情况信息容量占用量属于所述降级范围时,在多个不同性能的候选容器中确定所述实例类型对应的降级容器。
4.如权利要求2所述的弹性伸缩方法,其特征在于,所述性能配置参数包括配置吞吐量,所述根据所述性能配置参数和预设的降级条件确定降级范围,包括:
根据所述配置吞吐量和预设的降级条件,确定降级范围;
所述负载情况信息包括实际吞吐量,所述当所述负载情况信息属于所述降级范围时,在多个不同性能的候选容器中确定所述实例类型对应的降级容器,包括:
当所述实际吞吐量属于所述降级范围时,在多个不同性能的候选容器中确定所述实例类型对应的降级容器。
5.如权利要求2所述的弹性伸缩方法,其特征在于,所述性能配置参数包括配置工作频率,所述根据所述性能配置参数和预设的降级条件确定降级范围,包括:
根据所述配置工作频率和预设的降级条件,确定降级范围;
所述负载情况信息包括实际工作频率,所述当所述负载情况信息属于所述降级范围时,在多个不同性能的候选容器中确定所述实例类型对应的降级容器,包括:
当所述实际工作频率属于所述降级范围时,在多个不同性能的候选容器中确定所述实例类型对应的降级容器。
6.如权利要求2所述的弹性伸缩方法,其特征在于,所述性能配置参数包括配置容量、配置吞吐量和配置工作频率,所述降级范围包括第一降级范围、第二降级范围和第三降级范围,所述预设的降级条件包括预设的第一降级条件、预设的第二降级条件和预设的第三降级条件,所述根据所述性能配置参数和预设的降级条件确定降级范围,包括:
根据所述配置容量和预设的第一降级条件,确定第一降级范围;
根据所述配置吞吐量和预设的第二降级条件,确定第二降级范围;
根据所述、配置工作频率和预设的第三降级条件,确定第三降级范围;
所述负载情况信息包括所述负载情况信息包括容量占用量、实际吞吐量和实际工作频率,所述当所述负载情况信息属于所述降级范围时,在多个不同性能的候选容器中确定所述实例类型对应的降级容器,包括:
当所述容量占用量属于所述第一降级范围,且所述实际吞吐量属于所述第二降级范围,且所述实际工作频率属于所述第三降级范围时,在多个不同性能的候选容器中确定所述实例类型对应的降级容器。
7.如权利要求1所述的弹性伸缩方法,其特征在于,所述当所述负载情况信息符合预设的升级条件时,在多个不同性能的候选容器中确定所述实例类型对应的升级容器,包括:
确定所述实例类型的性能配置参数;
根据所述性能配置参数和预设的升级条件确定升级范围;
当所述负载情况信息属于所述升级范围时,在多个不同性能的候选容器中确定所述实例类型对应的升级容器。
8.如权利要求7所述的弹性伸缩方法,其特征在于,所述性能配置参数包括配置容量,所述根据所述性能配置参数和预设的升级条件确定升级范围,包括:
根据所述配置容量和预设的升级条件,确定升级范围;
所述负载情况信息包括容量占用量,所述当所述负载情况信息属于所述升级范围时,在多个不同性能的候选容器中确定所述实例类型对应的升级容器,包括:
当所述容量占用量属于所述升级范围时,在多个不同性能的候选容器中确定所述实例类型对应的升级容器。
9.如权利要求7所述的弹性伸缩方法,其特征在于,所述性能配置参数包括配置吞吐量,所述根据所述性能配置参数和预设的升级条件确定升级范围,包括:
根据所述配置吞吐量和预设的升级条件,确定升级范围;
所述负载情况信息包括实际吞吐量,所述当所述负载情况信息属于所述升级范围时,在多个不同性能的候选容器中确定所述实例类型对应的升级容器,包括:
当所述实际吞吐量属于所述升级范围时,在多个不同性能的候选容器中确定所述实例类型对应的升级容器。
10.如权利要求7所述的弹性伸缩方法,其特征在于,所述性能配置参数包括配置工作频率,所述根据所述性能配置参数和预设的升级条件确定升级范围,包括:
根据所述配置工作频率和预设的升级条件,确定升级范围;
所述负载情况信息包括实际工作频率,所述当所述负载情况信息属于所述升级范围时,在多个不同性能的候选容器中确定所述实例类型对应的升级容器,包括:
当所述实际工作频率属于所述升级范围时,在多个不同性能的候选容器中确定所述实例类型对应的升级容器。
11.如权利要求7所述的弹性伸缩方法,其特征在于,所述性能配置参数包括配置容量、配置吞吐量和配置工作频率,所述升级范围包括第一升级范围、第二升级范围和第三升级范围,所述预设的升级条件包括预设的第一升级条件、预设的第二升级条件和预设的第三升级条件,所述根据所述性能配置参数和预设的升级条件确定升级范围,包括:
根据所述配置容量和预设的第一升级条件,确定第一升级范围;
根据所述配置吞吐量和预设的第二升级条件,确定第二升级范围;
根据所述、配置工作频率和预设的第三升级条件,确定第三升级范围;
所述负载情况信息包括所述负载情况信息包括容量占用量、实际吞吐量和实际工作频率,所述当所述负载情况信息属于所述升级范围时,在多个不同性能的候选容器中确定所述实例类型对应的升级容器,包括:
当所述容量占用量属于所述第一升级范围,或所述实际吞吐量属于所述第二升级范围,或所述实际工作频率属于所述第三升级范围时,在多个不同性能的候选容器中确定所述实例类型对应的升级容器。
12.如权利要求1所述的弹性伸缩方法,其特征在于,在多个不同性能的候选容器中确定所述实例类型对应的降级容器,包括:
获取类型排行信息;
根据所述类型排行信息确定所述目标实例的实例类型的下一实例类型;
在多个不同性能的候选容器中,将所述下一实例类型对应的候选容器选取为降级容器。
13.如权利要求1所述的弹性伸缩方法,其特征在于,在多个不同性能的候选容器中确定所述实例类型对应的升级容器,包括:
获取类型排行信息;
根据所述类型排行信息确定所述目标实例的实例类型的上一实例类型;
在多个不同性能的候选容器中,将所述上一级实例类型对应的候选容器选取为升级容器。
14.一种弹性伸缩装置,其特征在于,包括:
情况单元,用于获取目标实例的负载情况信息;
目标单元,用于确定搭载了所述目标实例的目标容器,以及确定所述目标实例所属的实例类型;
降级确定单元,用于当所述负载情况信息符合预设的降级条件时,在多个不同性能的候选容器中确定所述实例类型对应的降级容器,所述降级容器的性能低于所述目标容器;
降级迁移单元,用于将所述目标实例从所述目标容器迁移到所述降级容器中,得到性能降级后的目标实例,从而实现目标实例的弹性收缩;
升级确定单元,用于当所述负载情况信息符合预设的升级条件时,在多个不同性能的候选容器中确定所述实例类型对应的升级容器,所述升级容器的性能高于所述目标容器;
升级迁移单元,用于将所述目标实例从所述目标容器迁移到所述升级容器中,得到性能升级后的目标实例,从而实现目标实例的弹性扩张。
15.一种服务器,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1~13任一项所述的弹性伸缩方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010991995.8A CN111857977B (zh) | 2020-09-21 | 2020-09-21 | 弹性伸缩方法、装置、服务器和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010991995.8A CN111857977B (zh) | 2020-09-21 | 2020-09-21 | 弹性伸缩方法、装置、服务器和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111857977A true CN111857977A (zh) | 2020-10-30 |
CN111857977B CN111857977B (zh) | 2020-12-25 |
Family
ID=72968469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010991995.8A Active CN111857977B (zh) | 2020-09-21 | 2020-09-21 | 弹性伸缩方法、装置、服务器和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111857977B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114040031A (zh) * | 2021-09-30 | 2022-02-11 | 重庆斯欧智能科技研究院有限公司 | 一种工业互联网的传输协议适配方法 |
CN114675957A (zh) * | 2022-05-26 | 2022-06-28 | 广州市玄武无线科技股份有限公司 | 插件熔断方法、装置、终端设备及计算机可读存储介质 |
CN116684468A (zh) * | 2023-08-02 | 2023-09-01 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106992887A (zh) * | 2017-04-05 | 2017-07-28 | 国家电网公司 | 基于容器的应用实例弹性伸缩的实现方法、装置及*** |
CN107329797A (zh) * | 2016-04-28 | 2017-11-07 | 华为技术有限公司 | 一种实例弹性伸缩方法、实例管理模块以及计算设备 |
CN107656807A (zh) * | 2016-07-26 | 2018-02-02 | 华为技术有限公司 | 一种虚拟资源的自动弹性伸缩方法及装置 |
CN108418862A (zh) * | 2018-01-31 | 2018-08-17 | 金蝶软件(中国)有限公司 | 基于人工智能服务云平台的微服务管理方法和*** |
CN109804352A (zh) * | 2016-09-29 | 2019-05-24 | 亚马逊技术有限公司 | 受管理的容器实例 |
CN111279319A (zh) * | 2017-09-30 | 2020-06-12 | 甲骨文国际公司 | 容器组的动态迁移 |
CN111338760A (zh) * | 2020-02-27 | 2020-06-26 | 长沙市源本信息科技有限公司 | 边缘计算的服务实例跨节点伸缩方法和装置 |
US20200264939A1 (en) * | 2017-08-14 | 2020-08-20 | International Business Machines Corporation | Container based service management |
-
2020
- 2020-09-21 CN CN202010991995.8A patent/CN111857977B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329797A (zh) * | 2016-04-28 | 2017-11-07 | 华为技术有限公司 | 一种实例弹性伸缩方法、实例管理模块以及计算设备 |
CN107656807A (zh) * | 2016-07-26 | 2018-02-02 | 华为技术有限公司 | 一种虚拟资源的自动弹性伸缩方法及装置 |
CN109804352A (zh) * | 2016-09-29 | 2019-05-24 | 亚马逊技术有限公司 | 受管理的容器实例 |
CN106992887A (zh) * | 2017-04-05 | 2017-07-28 | 国家电网公司 | 基于容器的应用实例弹性伸缩的实现方法、装置及*** |
US20200264939A1 (en) * | 2017-08-14 | 2020-08-20 | International Business Machines Corporation | Container based service management |
CN111279319A (zh) * | 2017-09-30 | 2020-06-12 | 甲骨文国际公司 | 容器组的动态迁移 |
CN108418862A (zh) * | 2018-01-31 | 2018-08-17 | 金蝶软件(中国)有限公司 | 基于人工智能服务云平台的微服务管理方法和*** |
CN111338760A (zh) * | 2020-02-27 | 2020-06-26 | 长沙市源本信息科技有限公司 | 边缘计算的服务实例跨节点伸缩方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114040031A (zh) * | 2021-09-30 | 2022-02-11 | 重庆斯欧智能科技研究院有限公司 | 一种工业互联网的传输协议适配方法 |
CN114040031B (zh) * | 2021-09-30 | 2023-10-20 | 合肥斯欧互联科技股份有限公司 | 一种工业互联网的传输协议适配方法 |
CN114675957A (zh) * | 2022-05-26 | 2022-06-28 | 广州市玄武无线科技股份有限公司 | 插件熔断方法、装置、终端设备及计算机可读存储介质 |
CN116684468A (zh) * | 2023-08-02 | 2023-09-01 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
CN116684468B (zh) * | 2023-08-02 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111857977B (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111857977B (zh) | 弹性伸缩方法、装置、服务器和存储介质 | |
CN112199194B (zh) | 基于容器集群的资源调度方法、装置、设备和存储介质 | |
CN109600269A (zh) | 一种基于dcos的云管理平台 | |
US10356150B1 (en) | Automated repartitioning of streaming data | |
CN108848132B (zh) | 一种基于云的配电调度主站*** | |
CN104679594B (zh) | 一种中间件分布式计算方法 | |
US12038879B2 (en) | Read and write access to data replicas stored in multiple data centers | |
US20200042608A1 (en) | Distributed file system load balancing based on available node capacity | |
CN105245523A (zh) | 应用于桌面虚拟化场景的存储服务平台及其实现方法 | |
CN102868744A (zh) | 一种实现SaaS与IaaS自动化集成管理的方法 | |
US9792185B2 (en) | Directed backup for massively parallel processing databases | |
CN106575245A (zh) | 随通信故障的分布式工作负载重新分配 | |
EP3817339B1 (en) | Method and system for management of an artificial intelligence development platform | |
CN111045802B (zh) | Redis集群组件调度***及方法、平台设备 | |
CN112395269A (zh) | MySQL高可用组的搭建方法及装置 | |
CN105573672A (zh) | 一种基于nfs的虚拟化存储方法和*** | |
CN105354757A (zh) | 电力数据集成处理*** | |
CN101483668A (zh) | 热点数据的网络存储和访问方法、设备及*** | |
WO2018063723A1 (en) | Flexible in-memory column store placement | |
US20220383219A1 (en) | Access processing method, device, storage medium and program product | |
CN110908783A (zh) | 一种云数据中心虚拟机的管控方法、***及设备 | |
CN115905174A (zh) | 数据库表灵动分合的方法、装置、存储介质及应用服务器 | |
CN111435319A (zh) | 一种集群的管理方法及装置 | |
CN103685359A (zh) | 数据处理方法及装置 | |
CN114090234A (zh) | 请求的调度方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40030636 Country of ref document: HK |