CN114489846A - 云平台的资源预估方法、装置、电子设备和存储介质 - Google Patents
云平台的资源预估方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114489846A CN114489846A CN202210056527.0A CN202210056527A CN114489846A CN 114489846 A CN114489846 A CN 114489846A CN 202210056527 A CN202210056527 A CN 202210056527A CN 114489846 A CN114489846 A CN 114489846A
- Authority
- CN
- China
- Prior art keywords
- resource
- curve
- resource usage
- cloud platform
- estimation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
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
技术领域
本发明涉及互联网技术领域,特别是涉及一种云平台的资源预估方法、装置、电子设备和计算机可读存储介质。
背景技术
弹性伸缩是云计算中常用的一种方法,可实现云平台中的应用程序在高峰期自动扩容,低峰期自动缩容,从而保证应用程序的稳定性,同时节约云平台的计算资源。由于弹性伸缩按需使用、自动伸缩等优点,近年来应用得愈加广泛,已逐步成为各大云计算公司的一大产品亮点与核心能力。资源保障是弹性伸缩的必备基础,由于物理服务器备货周期长,难以实时交付,因此,弹性伸缩平台方(云平台)需提前储备服务器来保证应用程序高峰期弹性扩容的资源。然而,如果储备资源太少,那么在大批应用程序同时触发扩容时可能会因资源不足而导致扩容失败,影响应用程序的稳定性;如果盲目储备大量资源,那么云平台将承担大量无效成本,造成亏损。因此,如何合理的对云平台的资源池进行容量规划,实现降本提效,是云平台面临的一大难题。
云平台的资源容量取决于所有接入云平台的应用程序的资源用量的峰值,因此,最常见的云平台资源预估方式是基于业务提报预算进行汇总,具体思路如下:
1.业务方通过压测或经验评估等方式预估单个应用程序未来固定周期(季度/月)所需最大资源容量,并通过系统向云平台进行提报。
2.云平台累加汇总所有接入应用程序的容量需求,基于汇总数据规划云平台未来固定周期的资源容量,提前采购、腾退服务器。
现有的云平台资源预估方式存在预估准确率低、人工统计成本大等问题,具体如下:
1)准确率低:云平台按应用程序最大资源用量进行备货,但实际上大部分应用程序的业务方都会按实际用量的2-3倍冗余来提报资源用量,造成云平台囤积大量冗余资源,承担无效成本。
2)人工统计成本大:应用程序资源容量的预估需要应用程序负责人根据经验评估,一方便增加了人工统计成本,另一方面人工经验的准确率难以保障,难以应对节假日、突发流量场景。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种云平台的资源预估方法、装置、电子设备和计算机可读存储介质。
为了解决上述问题,根据本发明实施例的第一方面,公开了一种云平台的资源预估方法,所述云平台用于运行多个应用程序,所述云平台包含多个资源单位,每个资源单位包含多个终端设备;所述方法包括:获取每个所述应用程序的历史负载监控数据;根据所述历史负载监控数据、预设的弹性伸缩策略和每个所述终端设备的资源配置信息,计算每个所述应用程序在预设周期内的资源用量曲线;针对每个所述资源单位,将每个所述资源单位对应的各所述应用程序的所述资源用量曲线进行聚合,得到资源用量预估曲线;根据所述资源用量预估曲线和预设倍数,预估所述云平台的资源用量区间。
可选地,所述根据所述历史负载监控数据、预设的弹性伸缩策略和每个所述终端设备的资源配置信息,计算每个所述应用程序在预设周期内的资源用量曲线,包括:基于时序预测算法对所述历史负载监控数据进行预测,得到每个所述应用程序在所述预设周期内的负载曲线;根据所述负载曲线和所述弹性伸缩策略,模拟得到每个所述应用程序在所述预设周期内在各个所述资源单位的扩缩容曲线;根据所述扩缩容曲线和所述资源配置信息,计算每个所述应用程序在所述预设周期内的资源用量曲线。
可选地,所述基于时序预测算法对所述历史负载监控数据进行预测,得到每个所述应用程序在所述预设周期内的负载曲线,包括:对所述历史负载监控数据进行预处理得到预设时间单位粒度的历史监控曲线;基于预言者Prophet模型和指数平滑算法对所述历史监控曲线进行预测,得到所述负载曲线;其中,所述预处理包含以下至少之一:数据清洗、数据转换、数据聚合;所述预设时间单位粒度包含分钟级粒度、刻钟级粒度。
可选地,所述基于预言者Prophet模型和指数平滑算法对所述历史监控曲线进行预测,得到所述负载曲线,包括:基于所述Prophet和所述指数平滑算法对所述历史监控曲线进行预测,得到所述预设周期内节假日时间段的所述负载曲线和非节假日时间段的所述负载曲线。
可选地,所述针对每个所述资源单位,将每个所述资源单位对应的各所述应用程序的所述资源用量曲线进行聚合,得到资源用量预估曲线,包括:针对每个所述资源单位,基于分时复用方式对每个所述资源单位对应的各所述应用程序的所述资源用量曲线进行聚合,得到资源用量预估曲线;其中,所述资源用量预估曲线的峰值小于各所述资源用量曲线的峰值之和。
可选地,所述根据所述资源用量预估曲线和预设倍数,预估所述云平台的资源用量区间,包括:将所述资源用量预估曲线的峰值分别与所述预设倍数中的第一倍数和第二倍数相乘,得到所述云平台的资源用量区间;其中,所述第一倍数小于所述第二倍数。
可选地,所述历史负载监控数据包含以下至少之一:每秒查询率QPS指标、CPU指标;所述弹性伸缩策略包含任务信息和与所述任务信息对应的扩缩规则;所述资源用量曲线包含以下至少之一:CPU用量曲线、内存用量曲线、磁盘用量曲线。
根据本发明实施例的第二方面,还公开了一种云平台的资源预估装置,所述云平台用于运行多个应用程序,所述云平台包含多个资源单位,每个资源单位包含多个终端设备;所述装置包括:数据获取模块,用于获取每个所述应用程序的历史负载监控数据;曲线计算模块,用于根据所述历史负载监控数据、预设的弹性伸缩策略和每个所述终端设备的资源配置信息,计算每个所述应用程序在预设周期内的资源用量曲线;曲线聚合模块,用于针对每个所述资源单位,将每个所述资源单位对应的各所述应用程序的所述资源用量曲线进行聚合,得到资源用量预估曲线;资源预估模块,用于根据所述资源用量预估曲线和预设倍数,预估所述云平台的资源用量区间。
可选地,所述曲线计算模块,包括:时序预测模块,用于基于时序预测算法对所述历史负载监控数据进行预测,得到每个所述应用程序在所述预设周期内的负载曲线;曲线模拟模块,用于根据所述负载曲线和所述弹性伸缩策略,模拟得到每个所述应用程序在所述预设周期内在各个所述资源单位的扩缩容曲线;用量计算模块,用于根据所述扩缩容曲线和所述资源配置信息,计算每个所述应用程序在所述预设周期内的资源用量曲线。
可选地,所述时序预测模块,包括:预处理模块,用于对所述历史负载监控数据进行预处理得到预设时间单位粒度的历史监控曲线;曲线预测模块,用于基于预言者Prophet模型和指数平滑算法对所述历史监控曲线进行预测,得到所述负载曲线;其中,所述预处理包含以下至少之一:数据清洗、数据转换、数据聚合;所述预设时间单位粒度包含分钟级粒度、刻钟级粒度。
可选地,所述曲线预测模块,用于基于所述Prophet和所述指数平滑算法对所述历史监控曲线进行预测,得到所述预设周期内节假日时间段的所述负载曲线和非节假日时间段的所述负载曲线。
可选地,所述曲线聚合模块,用于针对每个所述资源单位,基于分时复用方式对每个所述资源单位对应的各所述应用程序的所述资源用量曲线进行聚合,得到资源用量预估曲线;其中,所述资源用量预估曲线的峰值小于各所述资源用量曲线的峰值之和。
可选地,所述资源预估模块,用于将所述资源用量预估曲线的峰值分别与所述预设倍数中的第一倍数和第二倍数相乘,得到所述云平台的资源用量区间;其中,所述第一倍数小于所述第二倍数。
可选地,所述历史负载监控数据包含以下至少之一:每秒查询率QPS指标、CPU指标;所述弹性伸缩策略包含任务信息和与所述任务信息对应的扩缩规则;所述资源用量曲线包含以下至少之一:CPU用量曲线、内存用量曲线、磁盘用量曲线。
根据本发明实施例的第三方面,还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的一种云平台的资源预估方法。
根据本发明实施例的第四方面,还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的一种云平台的资源预估方法。
与现有技术相比,本发明实施例提供的技术方案具有如下优点:
本发明实施例提供的一种云平台的资源预估方案,获取每个接入到云平台的应用程序的历史负载监控数据,根据历史负载监控数据、预设的弹性伸缩策略和每个终端设备的资源配置信息,计算每个应用程序在预设周期内的资源用量曲线。针对每个资源单位,将每个资源单位对应的各应用程序的资源用量曲线进行聚合得到资源用量预估曲线。根据资源用量预估曲线和预设倍数预估云平台的资源用量区间。
本发明实施例避免了人工统计每个应用程序的资源容量,降低了人工成本,而且,也避免了根据人工经验预估应用程序的资源容量,从而提高了云平台的资源预估准确率。本发明实施例计算每个应用程序在预设周期内的资源用量曲线,并对资源用量曲线进行聚合得到资源用量预估曲线,可以充分利用云平台分时复用的优势,平衡云平台的资源池波峰波谷,减少云平台的资源容量。
附图说明
图1是本发明实施例的一种云平台的资源预估方法的步骤流程图;
图2是本发明实施例的一种资源用量曲线的计算流程示意图;
图3是本发明实施例的预估单个应用程序的资源用量曲线的流程示意图;
图4是本发明实施例的预估云平台的资源用量区间的流程示意图;
图5是本发明实施例的一种云平台的资源预估装置的结构框图;
图6是本发明实施例的一种电子设备的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明实施例的一种云平台的资源预估方法的步骤流程图。该云平台的资源预估方法可以应用于云平台控制终端或者云平台控制服务器。其中,云平台中可以接入多个应用程序,多个应用程序利用云平台中的资源进行运行。云平台可以包含多个资源单位。每个资源单位可以包含多个终端设备。在实际应用中,资源单位可以为机房。每个机房可以包含多个应用服务器。本发明实施例对云平台包含的资源单位的数量、规模等,以及,每个资源单位包含的终端设备的数量、品牌、资源配置信息等不做具体限制。该云平台的资源预估方法具体可以包括如下步骤:
步骤101,获取每个应用程序的历史负载监控数据。
在本发明的实施例中,每个应用程序的历史负载监控数据可以包含但不限于:每秒查询率(Queries Per Second,简称QPS)指标、CPU指标。在实际应用中,可以获取每个应用程序在某一段时间段内的历史负载监控数据。例如,获取应用程序A1过去三个月的QPS和CPU利用率。
为了提升云平台的资源预估准确率,可以尽可能获取时间单位粒度足够细的历史负载监控数据,例如,获取应用程序A1过去一周的每秒CPU利用率。
步骤102,根据历史负载监控数据、预设的弹性伸缩策略和每个终端设备的资源配置信息,计算每个应用程序在预设周期内的资源用量曲线。
在本发明的实施例中,弹性伸缩策略可以包含应用程序的任务信息以及与任务信息对应的扩缩规则。在实际应用中,应用程序的任务信息可以为定时任务的任务信息或者监控任务的任务信息。其中,定时任务可以理解为按照一定周期执行的任务。监控任务可以立即为实时执行的任务。扩缩规则可以为在定时任务或者监控任务执行时,定时任务或者监控任务对应的资源的增加量或者减少量。预设周期可以理解为未来某一时间段,例如,预设周期可以为未来30个自然天。资源用量曲线可以包含以下至少之一:CPU用量曲线、内存用量曲线、磁盘用量曲线。
步骤103,针对每个资源单位,将每个资源单位对应的各应用程序的资源用量曲线进行聚合,得到资源用量预估曲线。
在本发明的实施例中,针对每个机房,将每个机房对应的各应用程序的资源用量曲线进行聚合,得到每个机房的资源用量预估曲线。在实际应用中,每个机房的资源用量预估曲线可以表示在每个机房内的应用服务器的资源配置信息确定的情况下,每个机房内的应用服务器的最大数量。
步骤104,根据资源用量预估曲线和预设倍数,预估云平台的资源用量区间。
在本发明的实施例中,通常,云平台的资源用量区间会比资源用量预估曲线中的峰值等大一些,因此,将设定的预设倍数与资源用量预估曲线中的峰值相乘,得到资源用量区间。其中,预设倍数可以为一段倍数区间,例如,预设倍数为1.2倍至1.5倍。
本发明实施例提供的一种云平台的资源预估方案,获取每个接入到云平台的应用程序的历史负载监控数据,根据历史负载监控数据、预设的弹性伸缩策略和每个终端设备的资源配置信息,计算每个应用程序在预设周期内的资源用量曲线。针对每个资源单位,将每个资源单位对应的各应用程序的资源用量曲线进行聚合得到资源用量预估曲线。根据资源用量预估曲线和预设倍数预估云平台的资源用量区间。
本发明实施例避免了人工统计每个应用程序的资源容量,降低了人工成本,而且,也避免了根据人工经验预估应用程序的资源容量,从而提高了云平台的资源预估准确率。本发明实施例计算每个应用程序在预设周期内的资源用量曲线,并对资源用量曲线进行聚合得到资源用量预估曲线,可以充分利用云平台分时复用的优势,平衡云平台的资源池波峰波谷,减少云平台的资源容量。
在本发明的一种优选实施例中,参照图2,根据历史负载监控数据、预设的弹性伸缩策略和每个终端设备的资源配置信息,计算每个应用程序在预设周期内的资源用量曲线的一种实施方式可以包含如下步骤。
步骤201,基于时序预测算法对历史负载监控数据进行预测,得到每个应用程序在预设周期内的负载曲线。
在本发明的实施例中,时序预测算法即时间序列预测算法。时间序列,也叫时间数列、历史复数或动态数列。它是将某种统计指标的数值,按时间先后顺序排到所形成的数列。时间序列预测算法其实是一种回归预测方法,属于定量预测,其基本原理是:一方面承认事物发展的延续性,运用过去的时间序列数据进行统计分析,推测出事物的发展趋势;另一方面充分考虑到由于偶然因素影响而产生的随机性,为了消除随机波动产生的影响,利用历史数据进行统计分析,并对数据进行适当处理,进行趋势预测。
在实际应用中,基于时序预测算法对历史负载监控数据进行预测,得到每个应用程序在预设周期内的负载曲线的一种实施方式为,对历史负载监控数据进行预处理得到预设时间单位粒度的历史监控曲线,基于预言者Prophet模型和指数平滑算法对历史监控曲线进行预测得到负载曲线。其中,预处理包含以下至少之一:数据清洗、数据转换、数据聚合;预设时间单位粒度包含分钟级粒度、刻钟级粒度等。当基于预言者Prophet模型和指数平滑算法对历史监控曲线进行预测得到负载曲线时,可以针对节假日的负载曲线和非节假日的负载曲线分别进行预测,即可以基于Prophet和指数平滑算法对历史监控曲线进行预测,得到预设周期内节假日时间段的负载曲线和非节假日时间段的负载曲线。
步骤202,根据负载曲线和弹性伸缩策略,模拟得到每个应用程序在预设周期内在各个资源单位的扩缩容曲线。
在本发明的实施例中,针对不同的应用程序,可以存在不同的弹性伸缩策略。更进一步地,针对不同的应用程序的不同的任务,也可以存在不同的弹性伸缩策略。因此,本发明实施例可以根据云平台接入的应用程序以及各应用程序的任务,预先配置弹性伸缩策略集合。该弹性伸缩策略集合包含多个弹性伸缩策略。例如,弹性伸缩策略C1对应于应用程序A1的任务t1,弹性伸缩策略C2对应于应用程序A1的任务t2,弹性伸缩策略C3对应于应用程序A2的任务t3。
例如,预测得到应用程序A1的任务t1在未来30个自然天内的负载曲线Z1。该负载曲线Z1表示应用程序A1的任务t1在未来30个自然天内,每分钟需要消耗或者占用的资源量,该资源量包含但不限于:CPU用量、内存用量、磁盘用量等。与应用程序A1的任务t1对应的弹性伸缩策略C1包含应用程序A1的任务t1的执行日期和执行时间,以及,应用程序A1的任务t1在执行时需要增加的资源量。需要说明的是,如果应用程序A1的任务t1属于定时任务,则在应用程序A1的任务t1执行之外的时间段,可以根据弹性伸缩策略C1将之前增加的资源量缩减掉。如应用程序A1的任务t1在每日的10点执行一次,在执行应用程序A1的任务t1时需要增加2G内存。当应用程序A1的任务t1执行完毕之后,可以将之前增加的2G内存缩减掉。
综上所述,在预测得到每个应用程序的负载曲线的基础之上,结合各应用程序对应的弹性伸缩策略,可以模拟出各应用程序针对各机房的扩缩容曲线。在实际应用中,扩缩容曲线可以包含但不限于:各应用程序针对各机房在不同的时间点或者时间段需要增加或缩减的资源量等。
步骤203,根据扩缩容曲线和资源配置信息,计算每个应用程序在预设周期内的资源用量曲线。
在本发明的实施例中,由于每个应用服务器的资源配置信息相对来说是固定的,而且,每个机房内的应用服务器的数量也是相对固定的,因此,在模拟得到扩缩容曲线的基础之上,结合每个应用服务器的资源配置信息可以计算出需要增加或者缩减的应用服务器的数量。例如,应用程序A1在未来30个自然天针对机房F1的扩缩容曲线表示需要增加2台应用服务器S1。应用程序A1在未来30个自然天针对机房F2的扩缩容曲线表示需要增加3台应用服务器S2。其中,应用服务器S1和S2的资源配置信息可以相同也可以不相同。进一步地,若机房F1原有应用服务器S1的数量为10,机房F2原有应用服务器S2的数量为10,则应用程序A1在未来30个自然天的资源用量曲线为针对机房F1的应用服务器S1的数量为10+2=12台,针对机房F2的应用服务器S2的数量为10+3=13台。也就是说,资源用量曲线可以表示应用程序在预设周期内针对各个机房的应用服务器的数量。
在本发明的一种优选实施例中,针对每个资源单位,将每个资源单位对应的各应用程序的资源用量曲线进行聚合,得到资源用量预估曲线的一种实施方式为,针对每个资源单位,基于分时复用方式对每个资源单位对应的各应用程序的资源用量曲线进行聚合,得到资源用量预估曲线。其中,资源用量预估曲线的峰值小于各资源用量曲线的峰值之和。
分时复用(Time Division Multiplexing,简称TDM),是采用同一物理连接的不同时段来传输不同的信号,能达到多路传输的目的。在本发明的实施例中,机房内的各应用服务器也具有分时复用特性,即机房内的各应用服务器可以在不同时间段执行不同应用程序的不同任务。因此,在计算每个应用程序在预设周期内的资源用量曲线之后,并非简单地将资源用量曲线相加,而是为了平衡云平台的全部资源池的波峰波谷,对每个机房的各应用程序的资源用量曲线进行聚合得到资源用量预估曲线。该资源用量预估曲线可以表示各机房在预设周期内的应用服务器的最大数量和最小数量(前提为应用服务器的资源配置信息确定的情况下)。
在本发明的一种优选实施例中,根据资源用量预估曲线和预设倍数,预估云平台的资源用量区间的一种实施方式为,将资源用量预估曲线的峰值分别与预设倍数中的第一倍数和第二倍数相乘,得到云平台的资源用量区间。其中,第一倍数小于所述第二倍数。需要说明的是,资源用量预估曲线中的峰值可以包含上述最大数量和最小数量。针对最小数量,将最小数量分别与第一倍数和第二倍数相乘,得到云平台的最小资源用量区间。针对最大数量,将最大数量分别与第一倍数和第二倍数相乘,得到云平台的最大资源用量区间。例如,针对机房F1,资源用量预估曲线中的最小数量为100,最大数量为120,第一倍数为1.2,第二倍数为1.5,则机房F1的最小资源用量区间为120~150,机房F1的最大资源用量区间为144~180。同理,可以得到机房F2的最小资源用量区间和最大资源用量区间。将各个机房的最小资源用量区间相加得到云平台的最小资源用量区间,将各个机房的最大资源用量区间相加得到云平台的最大资源用量区间。
基于上述关于一种云平台的资源预估方法实施例的相关说明,下面介绍一种基于时序预测的云平台资源容量规划方案。该方案主要可以包含两个步骤。其中,第一步,预估单个应用程序的资源用量曲线。第二步,预估云平台的资源用量区间。
参照图3,示出了本发明实施例中预估单个应用程序的资源用量曲线的流程示意图。
在图3中,步骤301,预先获取单个应用程序在弹性伸缩组的历史负载监控数据和弹性伸缩策略。其中,弹性伸缩组可以为单个应用程序的每个任务所在的分组。单个应用程序存在多少个任务,即存在多少个弹性伸缩组。历史负载监控数据包含但不限于:QPS指标、CPU指标等等。弹性伸缩策略包含但不限于:定时任务t1和定时任务t1对应的扩缩规则g1、监控任务t2和监控任务t2对应的扩缩规则g2、监控任务t3和监控任务t3对应的扩缩规则g3。步骤302,对历史负载监控数据进行清洗、转换、聚合得到分钟级粒度的历史监控曲线。步骤303,通过时序预测算法(如Prophet及指数平滑法)预估应用程序在未来30天内的流量及负载曲线,其中,特殊节假日的数据预测会与日常数据预测进行区分处理。步骤304,以负载曲线为基准,结合弹性伸缩策略模拟计算出应用程序在未来30天内的扩缩容动作触发的时间及数量,得到应用程序在各个机房的扩缩容曲线。步骤305,以扩缩容曲线为基准,结合单台应用服务器的资源配置(如4核CPU、8G内存、200GB磁盘)信息,计算应用程序未来30天内需要的资源用量曲线(包括CPU用量曲线、内存用量曲线、磁盘用量曲线)。
参照图4,示出了本发明实施例中预估云平台的资源用量区间的流程示意图。
在图4中,按机房聚合所有应用程序的资源用量曲线,利用云平台分时复用的特性来平衡资源池的波峰波谷,聚合后的资源用量预估曲线峰值明显小于各应用程序的资源峰值之和。以资源用量预估曲线为准,参考资源用量预估曲线峰值冗余1.2倍-1.5倍,作为云平台应提供的最佳资源用量区间,完成云平台的资源容量预估。例如,应用程序A1的资源用量曲线表示在机房F1中需要的应用服务器的最大数量为50台,在机房F2中需要的应用服务器的最大数量为40台。应用程序A2的资源用量曲线表示在机房F1中需要的应用服务器的最大数量为100台,在机房F2中需要的应用服务器的最大数量为110台。将应用程序A1和A2的资源用量曲线聚合后得到的资源用量预估曲线表示,云平台中的机房F1中需要的应用服务器的最大数量为120台,小于50+100=150台,云平台中的机房F2中需要的应用服务器的最大数量为130台,小于40+110=150台。即聚合后的资源用量预估曲线峰值明显小于各应用程序的资源峰值之和。
本发明实施例采用Prophet等时序预测算法,根据历史负载监控数据预估未来的资源用量曲线,提升单个应用程序资源预估的准确度。利用云平台分时复用的特点,对云平台内应用程序的资源用量曲线进行聚合处理,平衡云平台资源用量每日的波峰波谷,达到更加精准的云平台容量规划效果,计算出更低的资源容量,节省云平台的成本。而且,本发明实施例具有通用性,当云平台新增机房或专区资源池时,无需任何上线操作即可实现新增资源池的容量预估,可做到零成本扩展。除此之外,还可以搭建可插件化的时序数据预测算法模块,提供预测算法快速扩充的能力。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明实施例的一种云平台的资源预估装置的结构框图,该云平台的资源预估装置可以应用于云平台控制终端或者云平台控制服务器。其中,云平台中可以接入多个应用程序,多个应用程序利用云平台中的资源进行运行。云平台可以包含多个资源单位。每个资源单位可以包含多个终端设备。在实际应用中,资源单位可以为机房。每个机房可以包含多个应用服务器。本发明实施例对云平台包含的资源单位的数量、规模等,以及,每个资源单位包含的终端设备的数量、品牌、资源配置信息等不做具体限制,该云平台的资源预估装置具体可以包括如下模块:
数据获取模块51,用于获取每个所述应用程序的历史负载监控数据;
曲线计算模块52,用于根据所述历史负载监控数据、预设的弹性伸缩策略和每个所述终端设备的资源配置信息,计算每个所述应用程序在预设周期内的资源用量曲线;
曲线聚合模块53,用于针对每个所述资源单位,将每个所述资源单位对应的各所述应用程序的所述资源用量曲线进行聚合,得到资源用量预估曲线;
资源预估模块54,用于根据所述资源用量预估曲线和预设倍数,预估所述云平台的资源用量区间。
在本发明的一种优选实施例中,所述曲线计算模块52,包括:
时序预测模块,用于基于时序预测算法对所述历史负载监控数据进行预测,得到每个所述应用程序在所述预设周期内的负载曲线;
曲线模拟模块,用于根据所述负载曲线和所述弹性伸缩策略,模拟得到每个所述应用程序在所述预设周期内在各个所述资源单位的扩缩容曲线;
用量计算模块,用于根据所述扩缩容曲线和所述资源配置信息,计算每个所述应用程序在所述预设周期内的资源用量曲线。
在本发明的一种优选实施例中,所述时序预测模块,包括:
预处理模块,用于对所述历史负载监控数据进行预处理得到预设时间单位粒度的历史监控曲线;
曲线预测模块,用于基于预言者Prophet模型和指数平滑算法对所述历史监控曲线进行预测,得到所述负载曲线;
其中,所述预处理包含以下至少之一:数据清洗、数据转换、数据聚合;所述预设时间单位粒度包含分钟级粒度、刻钟级粒度。
在本发明的一种优选实施例中,所述曲线预测模块,用于基于所述Prophet和所述指数平滑算法对所述历史监控曲线进行预测,得到所述预设周期内节假日时间段的所述负载曲线和非节假日时间段的所述负载曲线。
在本发明的一种优选实施例中,所述曲线聚合模块53,用于针对每个所述资源单位,基于分时复用方式对每个所述资源单位对应的各所述应用程序的所述资源用量曲线进行聚合,得到资源用量预估曲线;
其中,所述资源用量预估曲线的峰值小于各所述资源用量曲线的峰值之和。
在本发明的一种优选实施例中,所述资源预估模块54,用于将所述资源用量预估曲线的峰值分别与所述预设倍数中的第一倍数和第二倍数相乘,得到所述云平台的资源用量区间;
其中,所述第一倍数小于所述第二倍数。
在本发明的一种优选实施例中,所述历史负载监控数据包含以下至少之一:每秒查询率QPS指标、CPU指标;
所述弹性伸缩策略包含任务信息和与所述任务信息对应的扩缩规则;
所述资源用量曲线包含以下至少之一:CPU用量曲线、内存用量曲线、磁盘用量曲线。
本发明实施例还提供了一种电子设备,参见图6,包括:处理器601、存储器602以及存储在所述存储器602上并可在所述处理器601上运行的计算机程序6021,所述处理器601执行所述程序6021时实现前述实施例的云平台的资源预估方法。
本发明实施例还提供了一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述实施例的云平台的资源预估方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种云平台的资源预估方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种云平台的资源预估方法,其特征在于,所述云平台用于运行多个应用程序,所述云平台包含多个资源单位,每个资源单位包含多个终端设备;所述方法包括:
获取每个所述应用程序的历史负载监控数据;
根据所述历史负载监控数据、预设的弹性伸缩策略和每个所述终端设备的资源配置信息,计算每个所述应用程序在预设周期内的资源用量曲线;
针对每个所述资源单位,将每个所述资源单位对应的各所述应用程序的所述资源用量曲线进行聚合,得到资源用量预估曲线;
根据所述资源用量预估曲线和预设倍数,预估所述云平台的资源用量区间。
2.根据权利要求1所述的方法,其特征在于,所述根据所述历史负载监控数据、预设的弹性伸缩策略和每个所述终端设备的资源配置信息,计算每个所述应用程序在预设周期内的资源用量曲线,包括:
基于时序预测算法对所述历史负载监控数据进行预测,得到每个所述应用程序在所述预设周期内的负载曲线;
根据所述负载曲线和所述弹性伸缩策略,模拟得到每个所述应用程序在所述预设周期内在各个所述资源单位的扩缩容曲线;
根据所述扩缩容曲线和所述资源配置信息,计算每个所述应用程序在所述预设周期内的资源用量曲线。
3.根据权利要求2所述的方法,其特征在于,所述基于时序预测算法对所述历史负载监控数据进行预测,得到每个所述应用程序在所述预设周期内的负载曲线,包括:
对所述历史负载监控数据进行预处理得到预设时间单位粒度的历史监控曲线;
基于预言者Prophet模型和指数平滑算法对所述历史监控曲线进行预测,得到所述负载曲线;
其中,所述预处理包含以下至少之一:数据清洗、数据转换、数据聚合;所述预设时间单位粒度包含分钟级粒度、刻钟级粒度。
4.根据权利要求3所述的方法,其特征在于,所述基于预言者Prophet模型和指数平滑算法对所述历史监控曲线进行预测,得到所述负载曲线,包括:
基于所述Prophet和所述指数平滑算法对所述历史监控曲线进行预测,得到所述预设周期内节假日时间段的所述负载曲线和非节假日时间段的所述负载曲线。
5.根据权利要求1所述的方法,其特征在于,所述针对每个所述资源单位,将每个所述资源单位对应的各所述应用程序的所述资源用量曲线进行聚合,得到资源用量预估曲线,包括:
针对每个所述资源单位,基于分时复用方式对每个所述资源单位对应的各所述应用程序的所述资源用量曲线进行聚合,得到资源用量预估曲线;
其中,所述资源用量预估曲线的峰值小于各所述资源用量曲线的峰值之和。
6.根据权利要求1所述的方法,其特征在于,所述根据所述资源用量预估曲线和预设倍数,预估所述云平台的资源用量区间,包括:
将所述资源用量预估曲线的峰值分别与所述预设倍数中的第一倍数和第二倍数相乘,得到所述云平台的资源用量区间;
其中,所述第一倍数小于所述第二倍数。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述历史负载监控数据包含以下至少之一:每秒查询率QPS指标、CPU指标;
所述弹性伸缩策略包含任务信息和与所述任务信息对应的扩缩规则;
所述资源用量曲线包含以下至少之一:CPU用量曲线、内存用量曲线、磁盘用量曲线。
8.一种云平台的资源预估装置,其特征在于,所述云平台用于运行多个应用程序,所述云平台包含多个资源单位,每个资源单位包含多个终端设备;所述装置包括:
数据获取模块,用于获取每个所述应用程序的历史负载监控数据;
曲线计算模块,用于根据所述历史负载监控数据、预设的弹性伸缩策略和每个所述终端设备的资源配置信息,计算每个所述应用程序在预设周期内的资源用量曲线;
曲线聚合模块,用于针对每个所述资源单位,将每个所述资源单位对应的各所述应用程序的所述资源用量曲线进行聚合,得到资源用量预估曲线;
资源预估模块,用于根据所述资源用量预估曲线和预设倍数,预估所述云平台的资源用量区间。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任意一项所述的云平台的资源预估方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至7中任意一项所述的云平台的资源预估方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210056527.0A CN114489846A (zh) | 2022-01-18 | 2022-01-18 | 云平台的资源预估方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210056527.0A CN114489846A (zh) | 2022-01-18 | 2022-01-18 | 云平台的资源预估方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114489846A true CN114489846A (zh) | 2022-05-13 |
Family
ID=81472752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210056527.0A Pending CN114489846A (zh) | 2022-01-18 | 2022-01-18 | 云平台的资源预估方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114489846A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116382923A (zh) * | 2023-06-01 | 2023-07-04 | 苏州浪潮智能科技有限公司 | 云主机弹性伸缩调度方法、装置、电子设备和存储介质 |
-
2022
- 2022-01-18 CN CN202210056527.0A patent/CN114489846A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116382923A (zh) * | 2023-06-01 | 2023-07-04 | 苏州浪潮智能科技有限公司 | 云主机弹性伸缩调度方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104516475A (zh) | 用于管理多核片上系统上的全局芯片功率的方法和装置 | |
CN108038040A (zh) | 计算机集群性能指标检测方法、电子设备及存储介质 | |
CN108132839B (zh) | 一种资源调度方法及装置 | |
Dias et al. | Parallel computing applied to the stochastic dynamic programming for long term operation planning of hydrothermal power systems | |
Ghorbani et al. | Prediction and control of bursty cloud workloads: a fractal framework | |
CN106155802B (zh) | 任务调度方法、装置及控制节点 | |
CN103778474A (zh) | 资源负载量预测方法、分析预测系统及业务运营监控系统 | |
CN111966449B (zh) | 一种虚拟机备份管理方法、系统、终端及存储介质 | |
CN107450855A (zh) | 一种用于分布式存储的模型可变的数据分布方法及系统 | |
CN107565585A (zh) | 储能装置调峰回报时间预测方法及其模型创建方法 | |
CN114500339B (zh) | 一种节点带宽监测方法、装置、电子设备及存储介质 | |
CN110636388A (zh) | 一种业务请求分配方法、系统、电子设备及存储介质 | |
CN111752706A (zh) | 资源配置方法、装置及存储介质 | |
CN114489846A (zh) | 云平台的资源预估方法、装置、电子设备和存储介质 | |
CN111143070A (zh) | 一种资源调度方法和装置 | |
CN112181498B (zh) | 并发控制方法、装置和设备 | |
CN113835626A (zh) | 一种确定磁盘可使用时长的方法及装置 | |
CN115842822A (zh) | 一种低碳自适应云主机资源配置系统 | |
CN110069349A (zh) | 一种基于大数据平台的资源消耗核算系统 | |
CN115454620A (zh) | 负载预测方法、装置、电子设备及存储介质 | |
Van Beek et al. | A CPU contention predictor for business-critical workloads in cloud datacenters | |
CN114138453A (zh) | 一种适合边缘计算环境的资源优化分配方法与系统 | |
Xue et al. | Proactive management of systems via hybrid analytic techniques | |
CN107908476B (zh) | 基于分布式集群的数据处理方法与装置 | |
Abdel-Karim et al. | Modeling wind speed for power system applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |