容器资源的控制方法、设备及计算机存储介质与流程

文档序号:28321984发布日期:2022-01-04 23:21阅读:81来源:国知局
容器资源的控制方法、设备及计算机存储介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种容器资源的控制方法、设备及计算机存储介质。


背景技术:

2.随着云原生技术的发展和普及,容器虚拟化技术为用户提供了更为轻量、简单、高效、可控的资源池化方式。并且,随着上述技术的不断更迭,使得具备云原生架构的应用可以最大程度利用云服务和提升软件持续交付能力。
3.对于为云原生化应用提供基础保障设施的大型云数据中心而言,因受限于资源异构、软硬件配置多样性、管理规则繁杂、应用呈现开放性、混合部署多类负载等服务侧因素以及用户访问云服务的习惯在时间空间分布上不均衡等用户侧因素,导致资源利用率普遍较低、冗余严重。


技术实现要素:

4.本技术实施例提供一种容器资源的控制方法、设备及计算机存储介质,对于具有流量周期特性的时序运行数据,能够实现按需进行扩缩容操作,节约资源成本,并且不会导致服务质量的下降。
5.第一方面,本技术实施例提供了一种容器资源的控制方法,包括:
6.获取待分析的时序运行数据;
7.在所述时序运行数据具有流量周期特性时,获取与所述时序运行数据相对应的流量运行周期;
8.基于所述流量运行周期和所述时序运行数据生成容量画像;
9.基于所述容量画像确定与所述时序运行数据相对应的流量预测数据;
10.基于所述流量预测数据对用于对所述时序运行数据进行分析处理的容器资源进行扩缩容操作。
11.第二方面,本技术实施例提供了一种容器资源的控制装置,包括:
12.第一获取模块,用于获取待分析的时序运行数据;
13.第一获取模块,还用于在所述时序运行数据具有流量周期特性时,获取与所述时序运行数据相对应的流量运行周期;
14.第一生成模块,用于基于所述流量运行周期和所述时序运行数据生成容量画像;
15.第一处理模块,用于基于所述容量画像确定与所述时序运行数据相对应的流量预测数据;
16.第一处理模块,用于基于所述流量预测数据对用于对所述时序运行数据进行分析处理的容器资源进行扩缩容操作。
17.第三方面,本技术实施例提供了一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器
执行时实现上述第一方面所示的容器资源的控制方法。
18.第四方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第一方面所示的容器资源的控制方法。
19.第五方面,本发明实施例提供了一种计算机程序产品,包括:存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述第一方面所示的容器资源的控制方法中的步骤。
20.第六方面,本发明实施例提供了一种容器资源的控制方法,包括:
21.响应于调用容器资源的控制请求,确定容器资源的控制服务对应的处理资源;
22.利用处理资源执行如下步骤:获取待分析的时序运行数据;在所述时序运行数据具有流量周期特性时,获取与所述时序运行数据相对应的流量运行周期;基于所述流量运行周期和所述时序运行数据生成容量画像;基于所述容量画像确定与所述时序运行数据相对应的流量预测数据;基于所述流量预测数据对用于对所述时序运行数据进行分析处理的容器资源进行扩缩容操作。
23.第七方面,本发明实施例提供了一种容器资源的控制装置,包括:
24.第二确定模块,用于响应于调用容器资源的控制请求,确定容器资源的控制服务对应的处理资源;
25.第二处理模块,用于利用处理资源执行如下步骤:获取待分析的时序运行数据;在所述时序运行数据具有流量周期特性时,获取与所述时序运行数据相对应的流量运行周期;基于所述流量运行周期和所述时序运行数据生成容量画像;基于所述容量画像确定与所述时序运行数据相对应的流量预测数据;基于所述流量预测数据对用于对所述时序运行数据进行分析处理的容器资源进行扩缩容操作。
26.第八方面,本技术实施例提供了一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第六方面所示的容器资源的控制方法。
27.第九方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第六方面所示的容器资源的控制方法。
28.第十方面,本发明实施例提供了一种计算机程序产品,包括:存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述第六方面所示的容器资源的控制方法中的步骤。
29.本技术实施例提供的技术方案,通过获取时序运行数据,在时序运行数据具有流量周期特性时,获取与时序运行数据相对应的流量运行周期,而后基于流量运行周期和时序运行数据生成容量画像,而后基于容量画像确定与所述时序运行数据相对应的流量预测数据,该流量预测数据中可以包括与时序运行数据相对应的下一周期预测流量,并基于流量预测数据对用于进行数据处理操作的容器资源进行扩缩容操作,有效地实现了对于具有流量周期特性的时序运行数据,可以基于流量运行周期生成容量画像,并基于所生成的容量画像对容器资源进行弹性的扩缩容操作,不仅有效地实现了按需进行扩缩容操作,节约资源成本,并且不会导致服务质量的下降,保证了该控制方法的实用性,有利于市场的推广与应用。
附图说明
30.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
31.图1为本技术实施例提供的一种容器资源的控制系统的结构示意图;
32.图2为本技术实施例提供的一种容器资源的控制方法的场景示意图;
33.图3为本技术实施例提供的一种容器资源的控制方法的流程示意图;
34.图4为本技术实施例提供的另一种容器资源的控制方法的流程示意图;
35.图5为本技术实施例提供的确定用于实现扩缩容操作的至少一个扩缩容节点的流程示意图;
36.图6为本技术实施例提供的基于所述容量画像对与所述时序运行数据相对应的容器资源进行扩缩容操作的流程示意图;
37.图7为本技术实施例提供的又一种容器资源的控制方法的流程示意图;
38.图8为本技术应用实施例提供的一种容器资源的控制方法的流程示意图;
39.图9为本技术应用实施例提供的对qps时序数据进行预测的示意图一;
40.图10为本技术应用实施例提供的对qps时序数据进行预测的示意图二;
41.图11为本技术应用实施例提供的对qps时序数据进行预测的示意图三;
42.图12为本技术应用实施例提供的单实例qps时序数据的高斯分布拟合的示意图;
43.图13为本技术应用实施例提供的基于dag求解最短路径的示意图一;
44.图14为本技术应用实施例提供的基于dag求解最短路径的示意图二;
45.图15为本技术应用实施例提供的容量画像的示意图;
46.图16为本技术实施例提供的又一种容器资源的控制方法的流程示意图;
47.图17为本技术实施例提供的一种容器资源的控制装置的结构示意图;
48.图18为图17所示的容器资源的控制装置所对应的电子设备的结构示意图;
49.图19为本技术实施例提供的另一种容器资源的控制装置的结构示意图;
50.图20为图19所示的容器资源的控制装置所对应的电子设备的结构示意图。
具体实施方式
51.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
52.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
53.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种
情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
54.取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
55.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
56.另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
57.为了方便本领域技术人员理解本技术实施例提供的技术方案,下面对相关技术进行说明:
58.随着云原生技术的发展和普及,容器虚拟化技术为用户提供了更为轻量、简单、高效、可控的资源池化方式。并且,随着上述技术的不断更迭,使得具备云原生架构的应用可以最大程度利用云服务和提升软件持续交付能力。
59.对于为云原生化应用提供基础保障设施的大型云数据中心而言,因受限于资源异构、软硬件配置多样性、管理规则繁杂、应用呈现开放性、混合部署多类负载等服务侧因素以及用户访问云服务的习惯在时间空间分布上不均衡等用户侧因素,导致资源利用率普遍较低、冗余严重。
60.据相关调研表明,目前主流数据中心的资源利用率仅在6%~12%之间。具体的,在应用程序运行的过程中,大部分应用流量受人们生产生活的影响,可以呈现出明显的高低峰、周期性、趋势性等特征。举例来说,外卖应用会存在午间和晚间高峰,办公应用存在上午和晚间打卡高峰,电商应用的日常流量波峰是波谷的三倍以上,而有些应用例如直播视频类应用,可能会因为一个突发事件导致流量激增。这些在线长生命周期的应用大多是延迟敏感(latency

critical,简称lc)应用,此时,容器运行时需要支持实时交互、快速响应、低响应时延(response time,简称rt),稍大的延迟将带来明显的服务体感下降。
61.具体的,由于现有的应用大多采取java语言并基于spring框架来实现,而冷启动需要经历spring启动、插件加载、中间件初始化、实例(bean)初始化等过程。此外,沙箱(sandbox)冷启动需要解析配置文件、分配虚拟资源、挂载根文件系统、初始化客户机内核,从容器被创建到对外提供服务需要数分钟之久,因此,现有技术无法做到秒级的弹性扩缩容操作。此外,为了避免违反服务等级约定(service level agreement,简称sla)造成rt抖动,可以基于过冗余(over

provisioning)的资源分配方式部署容器实例,并让这些应用长期持有底层物理、网络资源。然而,这样在大规模场景下,容易导致资源利用率低下,带来严重的成本负担。
62.为了解决上述技术问题,相关技术提供了一种资源管理方法,该资源管理方法主要从垂直缩放的角度致力于解决随机存取存储器(random access memory,简称ram)和核心处理器(central processing unit,简称cpu)的资源冗余问题,其实现原理是利用观测到一段时间内的负载统计量和目标负载之间的比值作为扩容系数,而后基于扩容系数计算
合理副本数,而后基于合理副本数来调整核心处理器所对应的限制值/内存所对应的限制值。然而,由于受限于宿主机资源,上述方式主要适用于大型作业,间隔数天进行伸缩,对于多数流量驱动型、延迟敏感型、启动慢的应用而言,上述实现方式难以满足场景需求,如果扩容时间较长,突然的流量激增容易导致系统故障,造成经济、信誉等方面受损。因此,单一的垂直扩缩操作远远不能满足正常的数据处理需求。
63.为了解决上述技术问题,本实施例提供了一种容器资源的控制方法、设备及计算机存储介质,该技术方案适用于缺乏弹性能力应用的场景,能够有效地发挥云资源的弹性能力,并且,在保障当前服务质量(quality of service,简称qos)不损失的前提下进行资源供给的优化。该容器资源的控制方法的执行主体为容器资源的控制系统,参考附图1所示,该容器资源的控制系统可以包括:
64.数据节点:包括数据采集组件walle和一个或多个容器集合pod;
65.数据采集组件,用于采集数据节点、容器集合、容器级别的内核指标,其中,内核指标可以包括:cpu利用率、存储器利用率等等。在获取到内核指标之后,可以将内核指标转换成时序指标,即将指标采集时间和指标值组合,从而得到时序指标。在获取到时序指标之后,可以将时序指标主动上传至容器集合中所包括的采集容器。
66.容器集合,是基本的操作单元,也是应用的载体,可以包含一个或多个密切相关的容器。具体的,本实施例中的容器集合可以包括:采集容器和应用容器container,其中,采集容器确定与所述时序运行数据相对应的流量预测数据。应用容器对应于某一应用程序,例如:社交应用容器、电商应用容器等等,可以理解的是,不同的应用程序可以对应有不同的应用容器,并且,同一应用程序可以对应一个或多个应用容器。采集容器可以以日志信息作为数据源,采集数据节点内所有的内核指标和应用指标,具体的,采集容器可以通过应用容器获取应用指标,该应用指标可以包括:每秒查询率(query per second,简称qps),具体的,可以通过数据采集组件获取到内核指标。另外,该采集容器可以与应用容器部署在一起。
67.时间序列数据库tsdb:以时间序列的格式获取并存储通过数据节点所获取的各种指标,以对指标进行持久化存储,其中,时间序列数据库的实现方式可以为:prometheus数据库、influxdb数据库。
68.容量画像生成组件,用于通过时序序列数据库获取到时序运行数据,并基于时序运行数据生成容量画像。具体的,在获取到时序运行数据之后,可以对时序运行数据进行周期性识别操作,在时序运行数据具有流量周期特性时,可以识别与时序运行数据相对应的流量运行周期,基于流量运行周期进行流量预测操作,获得下一个周期的预测流量,而后确定每个实例的每秒查询率,基于每秒查询率和下一周期的预测流量来生成容量画像,该容量画像中包括与时序运行数据相对应的下一周期预测流量。
69.容量变更组件:是一种针对预设集群的水平弹性组件,用于作为容量画像的执行者,负责更改状态集statefulset中所控制的副本数量。具体的,可以通过容量画像里的参数确定需要进行扩缩操作的副本数量,而后通过api服务接口将副本数量传输到分布式存储组件(例如:分布式存储系统etcd、hadoop分布式文件系统hdfs等等)内,以使得分布式存储组件基于所获取到的副本数量对资源状态参数进行调整,其中,分布式存储系统etcd是一种分布式配置存储,保存了集群中各种资源对象的全量状态信息。分布式文件系统hdfs
适用于商用硬件上高数据吞吐量对大数据集的访问的需求。具体的,可以生成pod资源请求,以实现副本数量的调整或更改操作;而后分布式存储组件通过api服务接口和调度组件scheduler实现扩缩容操作,具体的,调度组件可以根据分布式存储组件所生成的pod资源请求以及集群运行状况,将pod放置到合适的计算节点。在实现扩缩容操作之后,可以对状态集中的实例数进行相对应的更新操作。
70.其中,api服务接口提供了资源对象的唯一操作入口,其他组件可以通过api服务接口来操作资源数据,通过对所关心的资源“全量查询、增量更新、变化监听“实时完成相关的数据处理操作。状态集statefulset用于部署相对应的数据应用,并可以控制应用实例数维持在目标量,具体的,状态集能够通过api接口从分布式存储组件里获知到对应的实例数量,在实例数量发生变化时,则可以基于发生变化后的实例数量进行相对应的实例扩缩操作。
71.本实施例提供的技术方案,通过对所采集的时序流量数据进行离线分析,并基于流量特征规律来判断是否具有明显的周期性规律,对于有周期性规律的应用,采用主动式弹性的扩缩容策略,具体可以基于时序流量数据所对应的流量运行周期来生成容量画像,该容量画像中包括与时序运行数据相对应的下一周期预测流量,而后可以基于容量画像对时序运行数据相对应的容器资源进行扩缩容操作,这样有效地实现了按需进行弹性的扩缩容操作,并且还能够节约资源成本,又不会导致服务质量的下降,进一步提高了该方法的实用性。
72.下面通过一个示例性的应用场景具体说明本技术各个实施例提供的容器资源的控制方法、设备及计算机存储介质。
73.图2为本技术实施例提供的一种容器资源的控制方法的场景示意图;图3为本技术实施例提供的一种容器资源的控制方法的流程示意图;参考附图2

图3所示,本实施例提供了一种容器资源的控制方法,该方法的执行主体可以为容器资源的控制装置,可以理解的是,该容器资源的控制装置可以实现为软件、或者软件和硬件的组合。具体应用时,该容器资源的控制装置可以搭载在服务器上,该容器资源的控制方法可以包括:
74.步骤s301:获取待分析的时序运行数据。
75.步骤s302:在时序运行数据具有流量周期特性时,获取与时序运行数据相对应的流量运行周期。
76.步骤s303:基于流量运行周期和时序运行数据生成容量画像。
77.步骤s304:基于所述容量画像确定与所述时序运行数据相对应的流量预测数据。
78.步骤s305:基于流量预测数据对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作。
79.下面对上述各个步骤进行详细说明:
80.步骤s301:获取待分析的时序运行数据。
81.其中,待分析的时序运行数据是指与一应用程序相对应的、需要进行流量特性分析的运行数据,该时序运行数据中包括按照时间序列进行排序后的运行数据。可以理解的是,不同的应用程序可以对应有不同的时序运行数据,不同应用场景下所获得的时序运行数据可以不同。
82.另外,本实施例中对于获取待分析的时序运行数据的具体实现方式不做限定,本
领域技术人员可以根据具体的应用场景或者应用需求进行设置,例如:待分析的时序运行数据可以存储在时间序列数据库中,通过访问时间序列数据库可以获取到待分析的时序运行数据。或者,该容器资源的控制装置可以通信连接有数据采集单元,数据采集单元可以采集应用程序所对应的时序运行数据,在获取到时序运行数据之后,可以将时序运行数据发送至容器资源的控制装置,从而使得容器资源的控制装置可以获取到待分析的时序运行数据。
83.在一些实例中,获取待分析的时序运行数据可以包括:获取原始时序运行数据;对原始时序运行数据进行下采样处理,获得时序运行数据。
84.具体的,在某一应用程序运行的过程中,可以获取原始时序运行数据,该原始时序运行数据可以包括成千上万的运行数据,此时,若直接对原始时序运行数据进行分析处理,会需要花费较多的数据处理资源,并且数据处理的时间较长。因此,为了能够保证数据处理的质量和效率,同时降低数据处理的数据量,在获取到原始时序运行数据之后,可以对原始时序运行数据进行下采样处理,从而可以获得进行下采样处理后的时序运行数据,该时序运行数据的数据量远远小于原始时序运行数据所对应的数据量,这样有利于提高了数据处理的质量和效率。
85.为了能够保证对原始时序运行数据进行下采样处理操作的质量和效率,对原始时序运行数据进行下采样处理,获得时序运行数据可以包括:获取用于对原始时序运行数据进行下采样操作的采样周期;基于采样周期对时序运行数据进行下采样处理,获得时序运行数据。
86.在对原始时序运行数据进行下采样处理的过程中,由于不需要实时进行容器资源的扩缩操作,因此,可以获取用于对原始时序运行数据进行下采样操作的采样周期,该采样周期可以是预设时间段的时间窗口,例如:5s的时间窗口、10s的时间窗口或者15s的时间窗口等等;而后基于采样周期对时序运行数据进行下采样处理,具体的,可以基于上述所确定的时间窗口在原始时序运行数据上进行滑动,而后获取每个窗口内所包括的数据最大值,将该数据最大值作为当前窗口值,由于所采集的原始时序运行数据中有可能会包括异常采集值,因此,通过将数据最大值确定为当前窗口值,不仅起到对数据降噪的效果,并且在流量预测的过程中,还可以降低数据预测的错误率,进一步保证了对容器资源进行扩缩容操作的准确可靠性。
87.当然的,本领域技术人员也可以采用其他的方式来获取到待分析的时序运行数据,只要能够保证对待分析的时序运行数据进行获取的准确可靠性即可,在此不再赘述。
88.步骤s302:在时序运行数据具有流量周期特性时,获取与时序运行数据相对应的流量运行周期。
89.在获取到时序运行数据之后,可以检测该时序运行数据是否具有流量周期特性,流量周期特性是指应用程序所对应的运行流量呈周期性的变化。在时序运行数据具有流量周期特性时,则可以获取与时序运行数据相对应的流量运行周期。在一些实例中,获取与时序运行数据相对应的流量运行周期可以包括:获取与时序运行数据相对应的功率谱密度;基于功率谱密度确定与时序运行数据相对应的局部最大值;基于局部最大值确定与时序运行数据相对应的流量周期。
90.具体的,在获取到时序运行数据之后,可以对时序运行数据进行谱分析处理,获取
功率谱密度;在获取到功率谱密度之后,可以对功率谱密度进行分析处理,从而可以确定与时序运行数据相对应的局部最大值,可以理解的是,该局部最大值的数量可以为一个或多个,一般情况下,可以获取第一个局部最大值;而后将局部最大值的倒数确定为流量周期,例如:获取一个或多个局部最大值分别为f1、f2和f3,则可以将第一个局部最大值f1确定为与功率谱密度相对应的目标局部最大值,而后将目标局部最大值1/f1确定为流量周期t,从而有效地保证了对时序运行数据所对应的流量周期进行确定的准确可靠性。
91.步骤s303:基于流量运行周期和时序运行数据生成容量画像。
92.在获取到流量运行周期之后,可以对流量运行周期和时序运行数据进行分析处理,以生成容量画像,其中,容量画像可以是指在某一应用程序运行的过程中,能够反映或者标识出应用程序的流量特征或者流量数据等等。在一些实例中,基于流量运行周期和时序运行数据生成容量画像可以包括:确定与时序运行数据相对应的运行特征值;基于流量运行周期和运行特征值,生成与时序运行数据相对应的容量画像。
93.在获取到时序运行数据之后,可以对时序运行数据进行分析处理,以确定与时序运行数据相对应的运行特征值,该运行特征值可以包括:qps的平均值、qps的方差值等等,具体的,可以利用中心极限定理对时序运行数据进行分析处理,以确定qps的平均值和qps的方差值。在获取到流量运行周期和运行特征值之后,可以对流量运行周期和运行特征值进行分析处理,以可以生成与时序运行数据相对应的容量画像。在一些实例中,可以将流量运行周期和运行特征值输入到预先训练好的网络网络模型中,通过网络模型可以获取到与时序运行数据相对应的容量画像,这样保证了容量画像生成的质量和效果。
94.步骤s304:基于容量画像确定与所述时序运行数据相对应的流量预测数据。
95.在获取到容量画像之后,可以对容量画像进行分析处理,以确定与时序运行数据所对应的流量预测数据,该流量预测数据中可以包括与时序运行数据相对应的下一周期预测流量、下两个周期预测流量等等。在一些实例中,基于容量画像确定与时序运行数据相对应的流量预测数据可以包括:获取用于对容量画像进行分析处理的机器学习模型,将容量画像输入至机器学习模型中,从而可以获取到与时序运行数据相对应的流量预测数据。在另一些实例中,基于容量画像确定与时序运行数据相对应的流量预测数据可以包括:获取用于对容量画像进行分析处理的预设规则,基于预设规则对容量画像进行分析处理,以确定与时序运行数据相对应的流量预测数据。
96.步骤s305:基于流量预测数据对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作。
97.在获取到流量预测数据之后,可以基于流量预测数据对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作。在一些实例中,基于流量预测数据对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作可以包括:基于流量预测数据,获取与时序运行数据相对应下一周期的预期容器资源;确定用于实现扩缩容操作的至少一个扩缩容节点;基于预期容器资源和至少一个扩缩容节点进行扩缩容操作。
98.具体的,在获取到流量预测数据之后,可以基于流量预测数据获取与时序运行数据相对应的下一周期的预测流量数据,并将下一周期预测流量数据转换为资源信息,从而可以获取到与时序运行数据相对应的下一周期的预期容器资源,该预期容器资源即为通过估计所获得的为了能够保证数据处理稳定性的目标容器资源。而后确定用于实现扩缩容操
作的至少一个扩缩容节点,在获取到预期容器资源和至少一个扩缩容节点之后,可以基于预期容器资源和至少一个扩缩容节点来进行扩缩容操作。在一些实例中,基于预期容器资源和至少一个扩缩容节点进行扩缩容操作可以包括:获取至少一个扩缩容节点在扩缩容时间段内的最大副本数;基于预期容器资源和最大副本数进行扩缩容操作。
99.对于扩缩容节点而言,在不同的时刻可以对应有不同的副本数,并且不同的扩缩容节点可以对应有不同的副本数。为了能够保证数据处理的质量和效率,在进行扩缩容操作时,可以获取至少一个扩缩容节点在扩缩容时间段内的最大副本数,扩缩容时间段可以是指由两次扩缩容操作之间构成的间隔时间。在获取到最大副本数之后,可以基于预期容器资源和最大副本数进行扩缩容操作,具体可以使得扩缩容节点的最大副本数始终位于预期容器资源之下,这样可以应对各种流量突增、流量骤减的情况,从而可以在维持数据处理稳定的同时降低数据处理成本。
100.本实施例提供的容器资源的控制方法,通过获取时序运行数据,在时序运行数据具有流量周期特性时,获取与时序运行数据相对应的流量运行周期,而后基于流量运行周期和时序运行数据生成容量画像,而后基于容量画像确定与所述时序运行数据相对应的流量预测数据,该流量预测数据中可以包括与时序运行数据相对应的下一周期预测流量,并基于流量预测数据对用于进行数据处理操作的容器资源进行扩缩容操作,有效地实现了对于具有流量周期特性的时序运行数据,可以基于流量运行周期生成容量画像,并基于所生成的容量画像对容器资源进行弹性的扩缩容操作,不仅有效地实现了按需进行扩缩容操作,节约资源成本,并且不会导致服务质量的下降,保证了该控制方法的实用性,有利于市场的推广与应用。
101.图4为本技术实施例提供的另一种容器资源的控制方法的流程示意图;参考附图4所示,在获取待分析的时序运行数据之后,本实施例中的方法还可以包括:
102.步骤s401:获取与时序运行数据相对应的功率谱密度。
103.步骤s402:基于功率谱密度,检测时序运行数据是否具有流量周期特性。
104.在获取到时序运行数据之后,可以对时序运行数据进行谱分析处理,从而可以获取与时序运行数据相对应的功率谱密度,而后可以对功率谱密度进行分析处理,以检测时序运行数据是否具有流量周期特性。在一些实例中,基于功率谱密度,检测时序运行数据是否具有流量周期特性可以包括:基于功率谱密度,获取预设频率范围内的谱密度区域;基于检测结果,确定所述时序运行数据是否具有流量周期特性。
105.具体的,由于功率谱密度对应的频率范围较广,而在检测时序运行数据是否具有流量周期特性时,并不需要对所有频率范围的数据进行分析处理,因此,为了提高对时序运行数据进行检测的质量和效率,并降低数据处理的资源,在获取到功率谱密度之后,可以获取预设频率范围内的谱密度区域,预设频率范围可以是预先配置的需要关注的频率范围,其具体的频率范围可以基于具体的应用场景进行设置,在一些实例中,预设频率范围可以是指由0到10db所对应的频率范围,而后可以获取与0到10db所对应的谱密度区域。
106.在获取到谱密度区域之后,可以检测谱密度区域内是否存在局部最大值,而后可以基于检测结果来确定时序运行数据是否具有流量周期特性,在一些实例中,基于检测结果,确定时序运行数据是否具有流量周期特性可以包括:在存在局部最大值时,则确定时序运行数据具有流量周期特性;在不存在局部最大值时,则确定时序运行数据不具有流量周
期特性。
107.其中,当对时序运行数据的检测结果为存在局部最大值时,则确定时序运行数据具有流量周期特征;当不存在局部最大值时,则可以确定时序运行数据不具有流量周期特征,从而有效地实现了对时序运行数据是否具有流量周期特性进行检测操作。
108.在又一些实例中,基于检测结果,检测时序运行数据是否具有流量周期特性可以包括:在存在局部最大值时,则获取与时序运行数据相对应的时序预测数据;基于时序预测数据,检测时序运行数据是否具有流量周期特性。
109.其中,当对时序运行数据的检测结果为存在局部最大值时,此时说明时序运行数据具有流量周期特性的可能性较大,为了能够进一步确定时序运行数据是否具有流量周期特性,可以获取与时序运行数据相对应的时序预测数据。在一些实例中,获取与时序运行数据相对应的时序预测数据可以包括:获取用于对时序运行数据进行时序预测的至少一个网络模型;利用至少一个网络模型对时序运行数据进行预测,获得与至少一个网络模型相对应的至少一个时序预测数据。
110.具体的,在获取到时序运行数据之后,可以获取用于对时序运行数据进行时序预测的至少一个网络模型,在一些实例中,至少一个网络模型可以包括以下至少之一:梯度提升树模型lightgbm,神经网络lstm,线性模型arima等能够进行时序预测的模型。在获取到至少一个网络模型之后,可以利用至少一个网络模型对时序运行数据进行预测,具体的,可以将时序运行数据输入至至少一个网络模型中,从而可以获得至少一个网络模型所输出的至少一个时序预测数据,该时序预测数据包括与时序运行数据相对应的下一周期所需要的数据流量。
111.在获取到至少一个时序预测数据之后,可以对至少一个时序预测数据进行分析处理,以检测时序运行数据是否具有流量周期特性。在一些实例中,基于时序预测数据,检测时序运行数据是否具有流量周期特性可以包括:获取与至少一个时序预测数据相对应的最小误差;在最小误差小于或等于预设阈值时,则确定时序运行数据具有流量周期特性;在最小误差大于预设阈值时,则确定时序运行数据不具有流量周期特性。
112.具体的,在获取到至少一个时序预测数据之后,可以分别获取与各个时序预测数据相对应的误差信息,该误差信息可以为平均百分比误差mape,具体的,mape可以通过以下公式来实现,而后在所有的误差信息中确定最小误差,从而有效地获取到与至少一个时序预测数据相对应的最小误差,该最小误差可以为最小平均百分比误差值mape。
113.在获取到最小误差之后,可以将最小误差与预设阈值进行分析比较,在最小误差小于或等于预设阈值时,则说明基于时序运行数据所获得的时序预测数据所对应的误差比较小,进而可以确定时序运行数据具有流量周期特性。而在最小误差大于预设阈值时,则说明基于时序运行数据所获得的时序预测数据所对应的误差比较大,进而可以确定时序运行数据不具有流量周期特性,从而有效地提高了对时序运行数据是否具有流量周期特性进行检测的准确可靠性。
114.本实施例中,通过获取与时序运行数据相对应的功率谱密度,而后基于功率谱密度,检测时序运行数据是否具有流量周期特性,有效地实现了对时序运行数据是否具有流
量周期特性进行检测,进而保证了对容器资源进行控制的准确可靠性。
115.图5为本技术实施例提供的确定用于实现扩缩容操作的至少一个扩缩容节点的流程示意图;在上述实施例的基础上,参考附图5所示,本实施例提供了一种确定用于实现扩缩容操作的至少一个扩缩容节点的实现方式,具体的,本实施例中的确定用于实现扩缩容操作的至少一个扩缩容节点可以包括:
116.步骤s501:获取用于实现扩缩容操作的扩缩容次数。
117.步骤s502:基于扩缩容次数,确定用于实现扩缩容操作的至少一个扩缩容节点。
118.在对容器资源进行扩缩容操作时,由于不能实时地进行扩缩容操作,因此,为了保证扩缩容操作的质量和效率,可以获取用于实现扩缩容操作的扩缩容次数,具体的,可以根据应用场景和设计需求来配置不同的扩缩容次数,例如:扩缩容次数可以为3次、4次或者5次等等。在获取到扩缩容次数之后,可以基于扩缩容次数确定用于实现扩缩容操作的至少一个扩缩容节点。在一些实例中,确定用于实现扩缩容操作的至少一个扩缩容节点可以包括:获取与时序运行数据相对应的当前所有容器节点;在扩缩容次数的约束下,基于有向无环图确定与当前所有容器节点相对应的最短路径;基于最短路径,确定用于实现扩缩容操作的至少一个扩缩容节点。
119.在获取到时序运行数据之后,可以对时序运行数据进行分析处理,以确定与时序运行数据相对应的当前所有容器节点,而后在扩缩容次数的约束下,基于有向无环图确定与当前所有容器节点相对应的最短路径,具体的,可以基于有向无环图获取到与当前所有容器节点相对应的所有路径,而后将所有路径进行分析比较,选取出与当前所有容器节点相对应的最短路径。在获取到最短路径之后,可以基于最短路径来确定用于实现扩缩容操作的至少一个扩缩容节点,进一步保证了对扩缩容节点进行确定的准确可靠性。
120.本实施例中,通过获取用于实现扩缩容操作的扩缩容次数,而后基于扩缩容次数确定用于实现扩缩容操作的至少一个扩缩容节点,从而有效地实现了对至少一个扩缩容节点进行确定的准确可靠性,进一步保证了对容器资源进行扩缩容操作的质量和效率。
121.图6为本技术实施例提供的基于容量画像对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作的流程示意图;在上述实施例的基础上,参考附图6所示,为了进一步降低扩缩容操作的弹性风险,本实施例提供了一种基于流量预测数据对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作的实现方式,具体的,本实施例中的基于流量预测数据对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作可以包括:
122.步骤s601:获取用于实现扩缩容操作的时间信息。
123.步骤s602:基于时间信息和流量预测数据提前对与时序运行数据相对应的容器资源进行扩容操作;和/或,基于时间信息和流量预测数据滞后对与时序运行数据相对应的容器资源进行缩容操作。
124.在对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作时,为了能够保证扩缩容操作的质量和效率,预先配置有用于对扩缩容操作的时间信息,该时间信息可以为30min、1h、1.5h等等,并且配置后的时间信息可以存储在预设区域中,通过访问预设区域即可获取用于实现扩缩容操作的时间信息。在获取到时间信息和容量画像之后,可以基于时间信息和流量预测数据对时序运行数据相对应的容器资源进行扩缩容操作。具体的,基于时间信息和流量预测数据对时序运行数据相对应的容器资源进行扩缩容操作可以包
括:基于时间信息和流量预测数据提前对与时序运行数据相对应的容器资源进行扩容操作;和/或,基于时间信息和流量预测数据滞后对与时序运行数据相对应的容器资源进行缩容操作。
125.本实施例中,通过获取用于实现扩缩容操作的时间信息,在需要对容器资源进行扩容操作时,可以提前扩容出容器资源;在需要对容器资源进行缩容操作时,通过延后对容器资源进行缩容操作,从而有效地做到了按需进行扩缩容操作,节约资源成本,并且不会导致服务质量的下降,进一步保证了控制方法的实用性。
126.图7为本技术实施例提供的又一种容器资源的控制方法的流程示意图;参考附图7所示,本实施例中的方法还可以包括:
127.步骤s701:在时序运行数据不具有流量周期特性时,获取与时序运行数据相对应的当前运行特征和当前副本数。
128.其中,在对时序运行数据进行分析处理的结果为时序运行数据不具有流量周期特性时,可以对时序运行数据所对应的容器资源进行被动地扩缩容操作,具体的,为了能够实现被动地扩缩容操作,可以对时序运行数据进行分析处理,以获取与时序运行数据相对应的当前运行特征和当前副本数,当前运行特征可以包括:qps、cpu利用率、内存利用率等等。
129.步骤s702:基于当前运行特征和当前副本数,确定与时序运行数据相对应的目标副本数。
130.在获取到当前运行特征和当前副本数之后,可以对当前运行特征和当前副本数进行分析处理,以确定与时序运行数据相对应的目标副本数。在一些实例中,基于当前运行特征和当前副本数,确定与时序运行数据相对应的目标副本数可以包括:获取用于对当前运行特征相对应的期望运行特征;基于当前运行特征、期望运行特征和当前副本数,确定与时序运行数据相对应的目标副本数。
131.具体的,预先配置有用于对当前运行特征相对应的期望运行特征,由于目标副本数与期望运行特征相关,因此,为了能够准确地确定与时序运行数据相对应的目标副本数,可以获取用于对当前运行特征相对应的期望运行特征,而后对当前运行特征、期望运行特征和当前副本数进行分析处理,以确定与时序运行数据相对应的目标副本数,在一些实例中,目标副本数=ceil[当前副本数*(当前运行特征/期望运行特征)],其中,ceil为向上取整函数,从而有效地保证了对目标副本数进行确定的准确可靠性。
[0132]
步骤s703:基于目标副本数对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作。
[0133]
在获取到目标副本数之后,可以基于目标副本数对于时序运行数据相对应的容器资源进行扩缩容操作。在一些实例中,基于目标副本数对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作可以包括:在目标副本数大于当前副本数时,则基于目标副本数对与时序运行数据相对应的容器资源进行扩容操作。在目标副本数小于当前副本数时,获取用于对时序运行数据所对应的容器资源进行缩容操作的缩容速率;基于缩容速率和目标副本数对与时序运行数据相对应的容器资源进行缩容操作。
[0134]
具体的,在获取到目标副本数之后,可以将目标副本数与当前副本数进行分析比较,在目标副本数与当前副本数相同时,则无需对容器资源进行任何的调整操作;在目标副本数大于当前副本数时,则说明当前副本数所对应的容器资源无法满足数据处理的需求,
因此,需要基于目标副本数对时序运行数据所对应的容器资源进行扩容操作;在目标副本数小于当前副本数时,则说明当前副本数所对应的容器资源不仅满足数据处理的需求,并且出现了容器资源冗余的情况,因此,需要基于目标副本数对时序运行数据所对应的容器资源进缩容操作。
[0135]
为了能够保证对时序运行数据所对应的容器资源进行缩容操作的质量和效率,可以获取用于对时序运行数据所对应的容器资源进行缩容操作的缩容速率,具体的,缩容速率可以包括任意之一的信息来标识:每次缩容操作的容器数量、每次缩容操作不超过当前副本数的百分比,通过缩容速率控制对时序运行数据所对应的容器资源进行缩容操作的缩容步长,有效地保证了缩容操作可以缓慢或者逐步的进行,进而有利于提高数据处理的质量和效率。可以理解的是,不同的应用场景可以对应有不同的缩容速率。
[0136]
在获取到缩容速率之后,可以基于缩容速率和目标副本数对与时序运行数据相对应的容器资源进行缩容操作,在一些实例中,基于缩容速率和目标副本数对与时序运行数据相对应的容器资源进行缩容操作可以包括:基于缩容速率和目标副本数,确定需要进行缩容操作的目标容器;对目标容器进行缩容操作,并将缩容操作后的目标容器存储在预设区域中;记录将目标容器存储在预设区域中的时间信息;在时间信息大于或等于设定时间阈值时,则将预设区域中的目标容器清除。
[0137]
具体的,为了避免因为缩容操作带来的数据处理风险,在获取到缩容速率和目标副本数之后,可以对缩容速率和目标副本数进行分析处理,以确定需要进行缩容操作的目标容器,目标容器即为需要进行缩容操作/删除操作的容器,在获取到目标容器之后,可以对目标容器进行缩容操作,并将缩容操作后的目标容器存储在预设区域中,之后通过计时器记录将目标容器存储在预设区域中的时间信息,可以将时间信息与设定时间阈值进行分析比较,在时间信息小于设定时间阈值时,则说明缩容操作后的目标容器存储在预设预取中的时间较短,此时仍然存在对目标容器进行调用的可能性,为了方便对目标容器进行随时调用操作,可以继续将目标容器存储在预设区域中。在时间信息大于或等于设定时间阈值时,则说明缩容操作后的目标容器存储在设定区域中的时间较长,此时对目标容器进行调用的可能性较小,因此,可以将预设区域中的目标容器清除。
[0138]
本实施例中,在时序运行数据不具有流量周期特性时,通过获取与时序运行数据相对应的当前运行特征和当前副本数,而后根据当前运行特征和当前副本数来确定目标副本数,而后基于目标副本数来实现扩缩容操作,具体的,在进行扩缩容操作时,通过将需要进行缩容操作的目标容器暂时存储在预设区域中,实现了缩容操作后的目标容器并不会立刻被清除,而是通过计时器来统计对目标容器进行存储的时间信息,而后进入静默期,等待一段时间后确认负载指标一直正常才会被清除,否则会立即通过预设区域来激活被缩容的目标容器,并可以利用激活的目标容器来接受流量,并可以进行相对应的数据处理操作,进一步提高了该方法使用的灵活可靠性。
[0139]
具体应用时,参考附图8所示,本应用实施例提供了一种容器资源的控制方法,该控制方法适用于缺乏弹性能力应用的场景,可以实现对于有周期性的应用采用主动式扩缩容操作,对于没有周期性的应用采用被动式扩缩容操作,具体的,主动式扩缩容操作是指主动地基于应用的流量周期性运行规律提前地进行扩缩容操作。被动式扩缩容操作是指可以获取数据的实时运行指标,在实时运行指标达到预设阈值时,则可以进行扩缩容操作。对于
有周期性的应用而言,该控制方法可以指导应用提前进行备容操作,这样不仅能够保障qos不下降,同时还能够做到对资源成本进行有效控制,从而提高资源分配的效率。具体的,该控制方法可以包括以下步骤:
[0140]
步骤1:获取qps时序数据。
[0141]
步骤2:对qps时序数据进行下采样操作,获得采样后数据。
[0142]
其中,qps时序数据的数据量往往较大,因此,为了能够提高数据处理的质量和效率,可以对通过检测组件收集到的qps时序数据进行下采样操作,由于不需要实时地进行扩缩容操作,因此,可以以预设时长的时间窗口进行滑动,例如:以5分钟的时间窗口进行滑动,可以理解的是,预设时长可以根据具体的应用场景或者应用需求进行配置。在一些实例中,可以基于qps时序数据所对应的数据量大小自动地调整时间窗口的大小,例如,qps时序数据所对应的数据量越大,时间窗口可以越长;qps时序数据所对应的数据量越小,时间窗口可以越短。可以理解的是,时间窗口越大,对qps时序数据所对应的资源估算越保守。
[0143]
另外,在以预设时长的时间窗口进行滑动时,由于每个窗口中采集的所有数据不一定是真实值或者正常值,因此,为了能够对数据进行降噪处理,可以获取每个窗口的qps最大值,将qps最大值作为当前窗口值,这样不仅可以起到对数据降噪的效果,并且还可以对流量预测起到一定风险控制作用。
[0144]
步骤3:对qps时序数据进行分析处理,以检测qps时序数据是否具有显著周期性。
[0145]
具体的,由于对于有显著流量周期性的应用可以采取主动式弹性策略,对于没有显著流量周期性的应用可以采用被动式弹性策略。因此,为了能够准确地对时序数据所对应的容器资源进行控制,可以对qps时序数据进行分析处理,以检测是否能对qps时序数据进行周期提取操作可以包括:可以基于赤池信息准则(akaike information criterion,简称aic)拟合自回归模型,获取与时序运行数据相对应的功率谱密度;在主要频率分量中,例如:0

10db所对应的频率范围内,如果功率谱密度在频率f处存在(局部)最大值,则说明qps时序数据具有显著周期性,并可以将t=1/f确定为与qps时序数据相对应的运行周期。如果功率谱密度在f处不存在(局部)最大值,则确定qps时序数据没有显著周期性,进而不能对qps时序数据进行周期提取操作。
[0146]
步骤4:对于具有显著周期性的应用而言,对qps时序数据进行时序预测。
[0147]
具体的,对于具有显著周期规律的应用而言,可以利用多个模型对qps时序数据进行时序预测操作,多个模型用于实现对qps时序数据所对应的下一周期运行数据进行预测,并且,多个模型所对应的框架不同,本实施例以利用三个模型对qps时序数据进行预测操作为例进行说明,此时,可以分别采取梯度提升树模型(light gradient boosting machine,简称lightgbm)、神经网络

长短期记忆网络(long short

term memory,简称lstm)和线性模型

差分整合移动平均自回归模型(autoregressive integrated moving average model,简称arima)对qps时序数据进行时序预测,从而可以分别获得与梯度提升树模型lightgbm相对应的预测结果1、与神经网络lstm相对应的预测结果2和线性模型arima相对应的预测结果3,具体的,图9、图10和图11分别展示了三类网络模型对线上同一应用的qps时序数据所对应的下一周期的预测结果。为了降低时序预测偏差带来的风险,本实施例可以在不同置信区间下给出预测结果的上界值,在某一置信度上界值可以覆盖95%以上的真实值时,则将当前置信度下预测结果作为模型输出。
[0148]
而后,可以分别获取与lightgbm模型相对应的mape指标1、与lstm模型相对应的mape指标2和与arima模型相对应的mape指标3,上述的mape指标可以通过以下公式来获取mape指标:上述的mape指标1用于标识梯度提升树模型lightgbm的运行误差,mape指标2用于标识神经网络lstm的运行误差,mape指标3用于标识线性模型arima的运行误差。可以理解的是,mape指标越小,模型的数据处理质量和准确度越高。
[0149]
在获取到上述三个mape指标之后,可以选择最小的mape指标的模型作为用于对qps时序数据进行时序预测操作的预测模型,并可以将预测模型所输出的预测结果作为qps时序数据所对应的运行周期特征。需要注意的是,若最小的mape指标仍大于或等于预设阈值,例如:最小的mape指标大于或等于0.3时,则说明三个网络模型中的最小误差的网络模型的数据运行误差仍较大,此时可以拒绝生成容量画像,而后可以将qps时序数据确定为没有具有流量周期特性,并对qps时序数据进行被动地扩缩容操作。
[0150]
步骤5:对于具有流量周期特性的应用而言,确定单实例可服务qps。
[0151]
对于具有流量周期特性的应用而言,可以采用主动式伸缩的扩缩容操作,具体可以选取负载表现较高时间段的运行时数据作为分析对象,一般情况下,由于应用程序在白天运行时所需要的资源比较高,因此,可以选择白天时间段所对应的qps时序数据作为分析对象。通过统计单实例qps数据,根据中心极限定理可近似拟合高斯分布,基于3σ原则通过拟合高斯分布剔除部分“异常点”,将qps平均值u与qps方差值σ之间的关联值μ+3σ作为单实例可服务qps值。上述的单实例可服务qps值在数据集范围内,并且在真实环境中得到校验,而后可以基于上述单实例可服务qps值来将数据处理请求均匀路由到的各个应用实例中,从而实现了数据均衡操作。因此,通过上述方式所获得的单实例可服务qps不会出现违反应sla的情况,如图12所示,对某线上应用单实例qps时序数据进行高斯分布拟合的示意图。
[0152]
步骤6:基于单实例qps时序数据和通过网络模型所确定的与qps时序数据所对应的下一周期的流量规律,生成容量画像。
[0153]
步骤7:基于容量画像确定与所述时序运行数据相对应的流量预测数据,该流量预测数据可以包括与时序运行数据相对应的下一周期预测流量。
[0154]
基于所确定的下一周期的流量规律以及单实例可服务qps(均值和方差)这两个先验条件,可以将流量数据转换成资源数据,而后在一周期扩缩次数限制下,以累积最少实例数为优化目标,从而将扩缩容节点的确定问题转换成动态规划问题,具体的,可以基于有向无环图dag求解需要进行扩缩容操作的扩缩点,以扩缩容次数为4次为例,本实施例中的容量画像生成过程如下:
[0155]
步骤a)定义每时刻需要的实例数,根据周期性不同,m取之不一样,以一天为例:如果原始记录是每分钟,则m=1440,如果是每小时,则m=24:
[0156]
l
i
=[a1,a2,

,a
m
]
[0157]
其中,l
i
为副本数序列;a
m
是第m个时间段的副本数。
[0158]
步骤b)定义优化目标,一天中累积使用实例数最少,其中,n为扩缩次数:
[0159][0160]
其中,是与扩缩容划分区间b1相对应的副本数,b
i
与扩缩次数n相对应的
一个扩缩容划分区间。
[0161]
步骤c)在扩缩次数n的约束下,基于dag搜索最短路径。
[0162]
步骤c1)最短行走路径:从起始点0到终点m,整个路径中最多包含n条链路,n表示扩缩次数;
[0163]
步骤c2)在最多包含n条链路的约束下,从点i(i∈[0,1,

,m])到终点m最短路径即最少实例个数;
[0164]
步骤c3)d
i,j
:从i到j最大实例数即max([a
i


,a
j
]);
[0165]
步骤c4)通过递推更新记录,直到最小为止;
[0166]
步骤c5)初始条件:
[0167]
下面以每天扩缩3次,l_i=[a1,a2,

,a4]为例,求解过程如图13

图14所示,通过上述附图可以获知一下关系式:
[0168][0169][0170]
其中,是指从节点0到节点m之间的路径所经过的计算节点,d
0,1
是节点0与节点1之间的路径,d
0,2
是节点0与节点2之间的路径,是指从节点0到节点m之间的路径所经过的计算节点,是指从节点0到节点m之间的路径所经过的计算节点,d
1,2
是节点1与节点2之间的路径,d
1,3
是节点1与节点3之间的路径,d
2,3
是节点2与节点3之间的路径,d
2,m
是节点2与节点m之间的路径,d
3,m
是节点3与节点m之间的路径。由上可知,从节点0到节点m共有3种路径,选取上述求解过程,选取出最短路径所对应的将确定为扩缩点,选取每个扩缩点时间段内副本最大数,即为每个时间段应提供的副本数。
[0171]
以在线某应用真实qps数据为例,最终生成的容量画像可以如图15所示:其中,图中包括第一折线、第二折线和第三折线:
[0172]
第一折线:根据qps预测结果以及单实例可服务qps,理论计算每个时刻应该提供多少副本数;
[0173]
第二折线:在第一折线的基础上,以及伸缩次数n约束下(例如:伸缩次数n=4),每个时间段应该提供多少副本数;
[0174]
第三折线:在第二折线的基础上,为了进一步降低容器资源的弹性风险,每次伸缩按照提前一小时扩容,具体的,可以在需要进行资源扩容时,可以提前一小时进行备容操作;在需要进行资源缩容时,可以延后一小时进行缩容操作。
[0175]
在又一些实例中,在获取到容量画像之后,可以基于容量画像对容器资源进行扩缩容操作,在对容器资源进行扩缩容操作失败时,则可以生成用于标识对容器资源进行扩缩容操作失败的提示信息,以提醒用户进行人工干预操作,进一步提高了该方法的实用性。
[0176]
步骤8:针对没有显著周期性规律的应用,可以采用被动地弹性进行扩缩容操作。
[0177]
具体的,采用被动地弹性进行扩缩容操作可以包括:获取与qps时序数据所对应的
当前指标(cpu利用率、内存利用率、修正副本数等等)、当前副本数和期望指标,基于当前指标、当前副本数和期望指标来确定与qps时序数据相对应的期望副本数,该期望副本数=ceil[当前副本数*(当前指标/期望指标)],其中,ceil为向上取整函数,而后基于期望副本数来生成扩缩建议,具体可以维持每个负载指标在期望值之下。
[0178]
需要注意的是,在需要进行缩容操作时,可以限制缩容速率,而后通过限制每次缩容的个数或者限制每次缩容不超过当前副本数的百分比来控制缩容步长,这样可以有效地降低数据处理的风险。
[0179]
本应用提供的技术方案,对于有周期性的应用可以采取主动式伸缩策略,具体的,可以通过预测流量运行状态做到流量的冗余估计,而后根据历史单应用实例qps的高斯分布,合理确定单应用实例可服务的qps值,并且在一个周期内,在扩缩次数的限制下,以一天中累积使用容器数最少为优化目标,生成容量画像,而后可以基于容量画像确定与时序运行数据相对应的流量预测数据,该流量预测数据可以包括与时序运行数据相对应的下一周期预期流量,而后可以基于流量预测数据对容器资源进行扩缩容操,这样不仅可以做到按需伸缩,节约资源成本,又不会导致qos下降。另外,对于没有周期性的应用可以采用被动式伸缩策略,该方法可以适用于具有大量的延迟敏感型,冷启动时间慢的延迟敏感型在线应用,进一步提高了该方法使用的灵活可靠性,有利于市场的推广与应用。
[0180]
图16为本技术实施例提供的又一种容器资源的控制方法的流程示意图;参考附图16所示,本实施例提供了又一种容器资源的控制方法,该方法的执行主体可以为容器资源的控制装置,可以理解的是,该容器资源的控制装置可以实现为软件、或者软件和硬件的组合。具体的,该容器资源的控制方法可以包括:
[0181]
步骤s1601:响应于调用容器资源的控制请求,确定容器资源的控制服务对应的处理资源;
[0182]
步骤s1602:利用处理资源执行如下步骤:获取待分析的时序运行数据;在时序运行数据具有流量周期特性时,获取与时序运行数据相对应的流量运行周期;基于流量运行周期和时序运行数据生成容量画像;基于所述容量画像确定与所述时序运行数据相对应的流量预测数据;基于所述流量预测数据对用于对所述时序运行数据进行分析处理的容器资源进行扩缩容操作。
[0183]
具体的,本发明提供的容器资源的控制方法可以在云端来执行,在云端可以部署有若干计算节点,每个计算节点中都具有计算、存储等处理资源。在云端,可以组织由多个计算节点来提供某种服务,当然,一个计算节点也可以提供一种或多种服务。
[0184]
针对本发明提供的方案,云端可以提供有用于完成容器资源的控制方法的服务,称为容器资源的控制服务。当用户需要使用该容器资源的控制服务的时候,调用该容器资源的控制服务,以向云端触发调用该容器资源的控制服务的请求,在该请求中可以携带有待分析的时序运行数据。云端确定响应该请求的计算节点,利用该计算节点中的处理资源执行如下步骤:获取待分析的时序运行数据;在时序运行数据具有流量周期特性时,获取与时序运行数据相对应的流量运行周期;基于流量运行周期和时序运行数据生成容量画像;基于所述容量画像确定与所述时序运行数据相对应的流量预测数据;基于所述流量预测数据对用于对所述时序运行数据进行分析处理的容器资源进行扩缩容操作。
[0185]
具体的,本实施例中的上述方法步骤的实现过程、实现原理和实现效果与上述图
1

图15所示实施例的方法步骤的实现过程、实现原理和实现效果相类似,本实施例未详细描述的部分,可参考对图1

图15所示实施例的相关说明。
[0186]
图17为本技术实施例提供的一种容器资源的控制装置的结构示意图;参考附图17所示,本实施例提供了一种容器资源的控制装置,该容器资源的控制装置用于执行上述图3所示的容器资源的控制方法,具体的,该容器资源的控制装置可以包括:
[0187]
第一获取模块11,用于获取待分析的时序运行数据;
[0188]
第一获取模块11,还用于在时序运行数据具有流量周期特性时,获取与时序运行数据相对应的流量运行周期;
[0189]
第一生成模块12,用于基于流量运行周期和时序运行数据生成容量画像;
[0190]
第一处理模块13,用于基于所述容量画像确定与所述时序运行数据相对应的流量预测数据;
[0191]
第一处理模块13,用于基于所述流量预测数据对用于对所述时序运行数据进行分析处理的容器资源进行扩缩容操作。
[0192]
在一些实例中,在第一获取模块11获取待分析的时序运行数据时,该第一获取模块11用于执行:获取原始时序运行数据;对原始时序运行数据进行下采样处理,获得时序运行数据。
[0193]
在一些实例中,在获取待分析的时序运行数据之后,本实施例中的第一获取模块11和第一处理模块13分别用于执行:
[0194]
第一获取模块11,用于获取与时序运行数据相对应的功率谱密度;
[0195]
第一处理模块13,用于基于功率谱密度,检测时序运行数据是否具有流量周期特性。
[0196]
在一些实例中,在第一处理模块13基于功率谱密度,检测时序运行数据是否具有流量周期特性时,该第一处理模块13用于执行:基于功率谱密度,获取预设频率范围内的谱密度区域;检测谱密度区域内是否存在局部最大值;基于检测结果,确定时序运行数据是否具有流量周期特性。
[0197]
在一些实例中,在第一处理模块13基于检测结果,检测所述时序运行数据是否具有流量周期特性时,该第一处理模块13用于执行:在存在局部最大值时,则确定时序运行数据具有流量周期特性;在不存在局部最大值时,则确定时序运行数据不具有流量周期特性。
[0198]
在一些实例中,在第一处理模块13基于检测结果,检测所述时序运行数据是否具有流量周期特性时,该第一处理模块13用于执行:在存在局部最大值时,则获取与时序运行数据相对应的时序预测数据;基于时序预测数据,检测时序运行数据是否具有流量周期特性。
[0199]
在一些实例中,在第一处理模块13获取与时序运行数据相对应的时序预测数据时,该第一处理模块13用于执行:获取用于对时序运行数据进行时序预测的至少一个网络模型;利用至少一个网络模型对时序运行数据进行预测,获得与至少一个网络模型相对应的至少一个时序预测数据。
[0200]
在一些实例中,在第一处理模块13基于时序预测数据,检测时序运行数据是否具有流量周期特性时,该第一处理模块13用于执行:获取与至少一个时序预测数据相对应的最小误差;在最小误差小于或等于预设阈值时,则确定时序运行数据具有流量周期特性;在
最小误差大于预设阈值时,则确定时序运行数据不具有流量周期特性。
[0201]
在一些实例中,在第一生成模块12基于流量运行周期和时序运行数据生成容量画像时,该第一生成模块12用于:确定与时序运行数据相对应的运行特征值;基于流量运行周期和运行特征值,生成与时序运行数据相对应的容量画像。
[0202]
在一些实例中,在第一处理模块13基于流量预测数据对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作时,该第一处理模块13用于执行:基于流量预测数据,获取与时序运行数据相对应下一周期的预期容器资源;确定用于实现扩缩容操作的至少一个扩缩容节点;基于预期容器资源和至少一个扩缩容节点进行扩缩容操作。
[0203]
在一些实例中,在第一处理模块13确定用于实现扩缩容操作的至少一个扩缩容节点时,该第一处理模块13用于执行:获取用于实现扩缩容操作的扩缩容次数;基于扩缩容次数,确定用于实现扩缩容操作的至少一个扩缩容节点。
[0204]
在一些实例中,在第一处理模块13确定用于实现扩缩容操作的至少一个扩缩容节点时,该第一处理模块13用于执行:获取与时序运行数据相对应的当前所有容器节点;在扩缩容次数的约束下,基于有向无环图确定与当前所有容器节点相对应的最短路径;基于最短路径,确定用于实现扩缩容操作的至少一个扩缩容节点。
[0205]
在一些实例中,在第一处理模块13基于预期容器资源和至少一个扩缩容节点进行扩缩容操作时,该第一处理模块13用于执行:获取至少一个扩缩容节点在扩缩容时间段内的最大副本数;基于预期容器资源和最大副本数进行扩缩容操作。
[0206]
在一些实例中,在第一处理模块13基于流量预测数据对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作时,该第一处理模块13用于执行:获取用于实现扩缩容操作的时间信息;基于时间信息和流量预测数据提前对与时序运行数据相对应的容器资源进行扩容操作;和/或,基于时间信息和流量预测数据滞后对与时序运行数据相对应的容器资源进行缩容操作。
[0207]
在一些实例中,本实施例中的第一获取模块11和第一处理模块13用于执行以下步骤:
[0208]
第一获取模块11,用于在时序运行数据不具有流量周期特性时,获取与时序运行数据相对应的当前运行特征和当前副本数;
[0209]
第一处理模块13,用于基于当前运行特征和当前副本数,确定与时序运行数据相对应的目标副本数;
[0210]
第一处理模块13,用于基于目标副本数对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作。
[0211]
在一些实例中,在第一处理模块13基于当前运行特征和当前副本数,确定与时序运行数据相对应的目标副本数时,该第一处理模块13用于执行:获取用于对当前运行特征相对应的期望运行特征;基于当前运行特征、期望运行特征和当前副本数,确定与时序运行数据相对应的目标副本数。
[0212]
在一些实例中,在第一处理模块13基于目标副本数对用于对时序运行数据进行分析处理的容器资源进行扩缩容操作时,该第一处理模块13用于执行:在目标副本数小于当前副本数时,获取用于对时序运行数据所对应的容器资源进行缩容操作的缩容速率;基于缩容速率和目标副本数对与时序运行数据相对应的容器资源进行缩容操作。
[0213]
在一些实例中,在第一处理模块13基于缩容速率和目标副本数对与时序运行数据相对应的容器资源进行缩容操作时,该第一处理模块13用于执行:基于缩容速率和目标副本数,确定需要进行缩容操作的目标容器;对目标容器进行缩容操作,并将缩容操作后的目标容器存储在预设区域中;记录将目标容器存储在预设区域中的时间信息;在时间信息大于或等于设定时间阈值时,则将预设区域中的目标容器清除。
[0214]
图17所示装置可以执行图1

图15所示实施例的方法,本实施例未详细描述的部分,可参考对图1

图15所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1

图15所示实施例中的描述,在此不再赘述。
[0215]
在一个可能的设计中,图17所示容器资源的控制装置的结构可实现为一电子设备,该电子设备可以是手机、平板电脑、服务器等各种设备。如图18所示,该电子设备可以包括:第一处理器21和第一存储器22。其中,第一存储器22用于存储相对应电子设备执行上述图1

图15所示实施例中提供的容器资源的控制方法的程序,第一处理器21被配置为用于执行第一存储器22中存储的程序。
[0216]
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第一处理器21执行时能够实现如下步骤:获取待分析的时序运行数据;在时序运行数据具有流量周期特性时,获取与时序运行数据相对应的流量运行周期;基于流量运行周期和时序运行数据生成容量画像;基于所述容量画像确定与所述时序运行数据相对应的流量预测数据;基于所述流量预测数据对用于对所述时序运行数据进行分析处理的容器资源进行扩缩容操作。
[0217]
进一步的,第一处理器21还用于执行前述图1

图15所示实施例中的全部或部分步骤。
[0218]
其中,电子设备的结构中还可以包括第一通信接口23,用于电子设备与其他设备或通信网络通信。
[0219]
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图1

图15所示方法实施例中容器资源的控制方法所涉及的程序。
[0220]
此外,本发明实施例提供了一种计算机程序产品,包括:存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述图1

图5所示方法实施例中容器资源的控制方法中的步骤。
[0221]
图19为本技术实施例提供的另一种容器资源的控制装置的结构示意图;参考附图19所示,本实施例提供了另一种容器资源的控制装置,该容器资源的控制装置用于执行上述图16所示的容器资源的控制方法,具体的,该容器资源的控制装置可以包括:
[0222]
第二确定模块31,用于响应于调用容器资源的控制请求,确定容器资源的控制服务对应的处理资源;
[0223]
第二处理模块32,用于利用处理资源执行如下步骤:获取待分析的时序运行数据;在时序运行数据具有流量周期特性时,获取与时序运行数据相对应的流量运行周期;基于流量运行周期和时序运行数据生成容量画像;基于所述容量画像确定与所述时序运行数据相对应的流量预测数据;基于所述流量预测数据对用于对所述时序运行数据进行分析处理的容器资源进行扩缩容操作。
[0224]
图19所示装置可以执行图16所示实施例的方法,本实施例未详细描述的部分,可
参考对图16所示实施例的相关说明。该技术方案的执行过程和技术效果参见图16所示实施例中的描述,在此不再赘述。
[0225]
在一个可能的设计中,图19所示容器资源的控制装置的结构可实现为一电子设备,该电子设备可以是手机、平板电脑、服务器等各种设备。如图20所示,该电子设备可以包括:第二处理器41和第二存储器42。其中,第二存储器42用于存储相对应电子设备执行上述图16所示实施例中提供的容器资源的控制方法的程序,第二处理器41被配置为用于执行第二存储器42中存储的程序。
[0226]
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第二处理器41执行时能够实现如下步骤:响应于调用容器资源的控制请求,确定容器资源的控制服务对应的处理资源;利用处理资源执行如下步骤:获取待分析的时序运行数据;在时序运行数据具有流量周期特性时,获取与时序运行数据相对应的流量运行周期;基于流量运行周期和时序运行数据生成容量画像;基于所述容量画像确定与所述时序运行数据相对应的流量预测数据;基于所述流量预测数据对用于对所述时序运行数据进行分析处理的容器资源进行扩缩容操作。
[0227]
进一步的,第二处理器41还用于执行前述图16所示实施例中的全部或部分步骤。
[0228]
其中,电子设备的结构中还可以包括第二通信接口43,用于电子设备与其他设备或通信网络通信。
[0229]
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图16所示方法实施例中容器资源的控制方法所涉及的程序。
[0230]
此外,本发明实施例提供了一种计算机程序产品,包括:存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述图16所示方法实施例中容器资源的控制方法中的步骤。
[0231]
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0232]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0233]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流
程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0234]
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0235]
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0236]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0237]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0238]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0239]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1