系统容量预测方法、装置、电子设备和存储介质与流程

文档序号:29948962发布日期:2022-05-07 17:21阅读:111来源:国知局
系统容量预测方法、装置、电子设备和存储介质与流程

1.本公开涉及计算机技术领域,具体为云服务、人工智能和服务器技术领域,尤其涉及系统容量预测方法、装置、电子设备和存储介质。


背景技术:

2.随着口技术的快速发展,互联网应用逐渐成为业务创新、企业提质增效的重要推动力。因此,保障互联网应用的服务质量至关重要。
3.对服务器资源进行容量预测,可以更好的提高硬件资源的利用使用效果,并合理分配硬件资源,提高服务器的服务稳定性。


技术实现要素:

4.本公开提供了一种系统容量预测方法、装置、电子设备和存储介质。
5.根据本公开的一方面,提供了一种系统容量预测方法,包括:
6.获取系统在第一时间段的容量采集数据,并根据系统包括的应用程序进行分类;
7.将属于同一应用类型的应用程序的容量采集数据,输入至所述应用类型对应的分类容量预测模型中,得到所述应用类型对应的分类容量预测值;
8.根据各所述应用类型对应的分类容量预测值,确定所述系统在第二时间段的系统容量预测值,所述第一时间段在所述第二时间段之前。
9.根据本公开的一方面,提供了一种系统容量预测装置,包括:
10.应用分类模块,用于获取系统在第一时间段的容量采集数据,并根据系统包括的应用程序进行分类;
11.分类预测模块,用于将属于同一应用类型的应用程序的容量采集数据,输入至所述应用类型对应的分类容量预测模型中,得到所述应用类型对应的分类容量预测值;
12.系统预测模块,用于根据各所述应用类型对应的分类容量预测值,确定所述系统在第二时间段的系统容量预测值,所述第一时间段在所述第二时间段之前。
13.根据本公开的另一方面,提供了一种电子设备,包括:
14.至少一个处理器;以及
15.与所述至少一个处理器通信连接的存储器;其中,
16.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任一实施例所述的系统容量预测方法。
17.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本公开任一实施例所述的系统容量预测方法。
18.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开任一实施例所述的系统容量预测方法。
19.本公开实施例可以提高系统容量的预测准确率。
20.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
21.附图用于更好地理解本方案,不构成对本公开的限定。其中:
22.图1是根据本公开实施例提供的一种系统容量预测方法的示意图;
23.图2是根据本公开实施例提供的一种系统容量预测方法的示意图;
24.图3是根据本公开实施例提供的一种系统容量预测方法的示意图;
25.图4是根据本公开实施例提供的一种系统容量预测方法的示意图;
26.图5是根据本公开实施例提供的一种系统容量预测方法的场景图;
27.图6是根据本公开实施例提供的一种系统容量预测方法的场景图;
28.图7是根据本公开实施例提供的一种系统容量预测装置的示意图;
29.图8是用来实现本公开实施例的系统容量预测方法的电子设备的框图。
具体实施方式
30.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
31.图1是根据本公开实施例公开的一种系统容量预测方法的流程图,本实施例可以适用于基于系统在第一时间段的容量,对系统在第二时间段的容量进行预测的情况。本实施例方法可以由系统容量预测装置来执行,该装置可采用软件和/或硬件的方式实现,并具体配置于具有一定数据运算能力的电子设备中,该电子设备可以是客户端设备或服务器设备,客户端设备例如手机、平板电脑、车载终端和台式电脑等。
32.s101,获取系统在第一时间段的容量采集数据,并根据系统包括的应用程序进行分类。
33.系统可以是指计算机云服务系统。系统包括至少一个应用程序(application,app),各所述应用程序配置于至少一个计算机服务器,系统包括配置应用程序的计算机服务器,同一应用程序可以配置在不同的计算机服务器上,相应的,计算机服务器与应用程序是多对多的对应关系。
34.第一时间段可以是指在当前时间之前的第一时间段,是历史时间段,其中,第一时间段可以包括当前时间。容量采集数据用于确定系统的资源使用状态,或负载。容量采集数据可以包括下述至少一项:中央处理器(central processing unit,cpu)消耗数据、内存使用数据、磁盘输入输出数据、网络流量数据和运行状态数据等。每个数据可以进一步细化,例如,cpu消耗数据可以包括cpu利用率,通常是百分比表示。运行状态数据可以包括下述至少一项:响应时间、吞吐量、并发量和异常数据等。吞吐量可以采用当前承接流量吞吐,每秒查询率(query per second,qps)表示。可选的,容量采集数据可以包括:当前承接流量吞吐qps和资源消耗cpu使用量。
35.获取系统在第一时间段的容量采集数据,可以是获取系统中每个应用程序在第一时间段的容量采集数据。示例性的,计算机服务器中可以配置至少一个容器,不同容器用于配置独立的运行环境,可以将一个应用程序包含的数据放入到容器内,该应用程序在该容器中运行。应用程序的容量采集数据可以是针对该应用程序所部署的容器进行数据采集。在第一时间段可以周期行获取容量采集数据,还可以随机获取容量采集数据,获取的可以是每个应用程序的容量采集数据,还可以是部分应用程序的容量采集数据。其中,容量采集数据、采集的应用程序的范围和采集频率可以根据需要进行限定,对此,本公开实施例不做具体限定。
36.根据系统包括的应用程序进行分类,是指对系统的容量采集数据按照应用程序的类型进行分类。可以预先对应用程序进行分类,得到至少一个应用类型的应用程序,从而获取属于同一应用类型的应用程序,并获取属于同一应用类型的应用程序的容量采集数据。
37.s102,将属于同一应用类型的应用程序的容量采集数据,输入至所述应用类型对应的分类容量预测模型中,得到所述应用类型对应的分类容量预测值。
38.应用类型是指应用程序的类型。分类容量预测模型用于根据历史容量数据预测未来的容量数据,具体用于根据对应的应用类型的应用程序在第一时间段的容量采集数据,确定该对应的应用类型在第二时间段的分类容量预测值。应用类型和分类容量预测模型对应,例如,可以是一一对应关系。分类容量预测值用于预测系统的容量数据。分类容量预测值可以是属于同一应用类型的全部应用程序在第二时间段的容量预测值。容量预测值可以包括下述至少一项:cpu消耗数据、内存使用数据、磁盘输入输出数据、网络流量数据和运行状态数据等。容量预测值还可以再细分具体包括的内容,对此不具体限定。可选的,容量预测值包括cpu使用量。
39.可以预先针对每个应用类型,分别对应训练分类容量预测模型。在训练完成后,针对各应用类型,获取属于各应用类型的应用程序的容量采集数据输入到对应的预先训练的分类容量预测模型中,得到各应用类型对应的分类容量预测值。其中,一个应用类型对应的分类容量预测模型的训练样本可以是:该应用类型的多个应用功能程序在第三时间段的容量采集数据和在第四时间段的容量采集数据,其中,第三时间段的时长与第一时间段的时长相同,第四时间段的时长与第二时间的时长相同,第三时间段与第四时间段之间的时长与第一时间段的时长与第二时间段的时长相同。
40.s103,根据各所述应用类型对应的分类容量预测值,确定所述系统在第二时间段的系统容量预测值,所述第一时间段在所述第二时间段之前。
41.系统容量预测值用于确定系统在第二时间段的容量数据。系统容量预测值,可以确定系统在未来一段时间段的资源使用状态,或负载,从而可以根据系统容量预测值调整系统的容量,提高系统提供的服务的质量和稳定性。将各应用类型对应的分类容量预测值进行统计,得到系统在第二时间段的系统容量预测值。统计方式可以是累加、加权或乘积等。
42.现有技术中,基于系统的整体容量指标,进行数据采集,并预测系统容量。该方式将整体系统作为一个容量问题考虑,只能实现比较粗粒度的容量整体预测,无法做到比较准确的系统容量数据预测,在一些常态下的总量预测可以达到生成环境级别的系统容量可信数据,但经常在精确容量场景会出现较大的偏差,带来系统容量的过度判断,例如精度粗
糙带来容量预测的方差较大,从而引起系统花费较多资源去准备容量扩充,而实际容量的利用率并不高。
43.此外,现有技术中,还可以通过在复杂系统入口处,进行流量模拟压力访问,从而观察系统整体的入口流量变化带来的系统整体容量负载情况,根据系统中多个模块的压力和监控情况,来用作系统压力的反馈信号,从而取得一个入口级别的系统容量数据,用来衡量系统入口流量和系统容量之间的预测关系。但在复杂的网络拓扑中,成本主干节点的计算机服务容量会成本制约系统整体容量的短板,系统中对短板服务进行扩容后,又会引发新的短板服务,复杂系统中通过多轮次压力测试识别和扩容出服务容量,花费的时间和人力成本都是巨大的。
44.根据本公开的技术方案,通过将系统在第一时间段的容量采集数据拆分成应用类型对应的容量采集数据,并输入到应用类型对应的容量预测模型中,针对每个应用类型预测得到分类容量预测值,并确定系统在第二时间段的系统容量预测值,实现将系统容量的预测拆分成各应用类型的容量预测,可以基于细粒度分解容量预测,准确刻画一个应用类型的应用程序容量,提高容量预测的准确率,并有效提高复杂计算机系统的容量预测准确率,满足庞大计算机系统容量预测的应用需求。
45.图2是根据本公开实施例公开的另一种系统容量预测方法的流程图,基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。所述获取系统在第一时间段的容量采集数据,具体化为:获取系统包括的应用程序在第一时间段的容量采集数据,并按照采集时间形成所述应用程序的容量采集数据序列;将所述系统包括的应用程序的容量采集数据序列,确定为所述系统在所述第一时间段的容量采集数据。
46.s201,获取系统包括的应用程序在第一时间段的容量采集数据,并按照采集时间形成所述应用程序的容量采集数据序列。
47.容量采集数据序列是指按照采集时间顺序排列同一个应用程序的容量采集数据的序列。在第一时间段内的不同时间,多次获取应用程序的容量采集数据,并按照采集时间进行排列,形成该应用程序的容量采集数据序列。示例性的,在第t时间采集第i个应用程序的容量采集数据,可以采用c
i,t
表示。第i个应用程序在从第1时间到第t时间的第一时间段的容量采集数据可以采用c
i,1:t
表示,c
i,1:t
=[c
1,t
,c
2,t
,c
3,t

……ci,t
]。其中,在第一时间段哪个时间采集应用程序的容量采集数据,可以根据需要配置,各时间可以随机采集,也可以按照规则采集,例如,周期性采集,示例性的,第一时间段的时间为第1小时、第2小时
……
第23小时。
[0048]
s202,将所述系统包括的应用程序的容量采集数据序列,确定为所述系统在所述第一时间段的容量采集数据,并根据系统包括的应用程序进行分类。
[0049]
将系统中全部的应用程序的容量采集数据序列,确定为系统在第一时间段的容量采集数据。通常系统的不同应用程序的同一参数的容量采集数据会进行累加,得到系统的该参数的容量采集数据。在本公开实施例中,对不同应用程序的容量采集数据可以不进行累加,并按照应用程序进行区分。其中,系统的容量采集数据包括第一时间段的各时间的全部应用程序的容量数据的统计值。示例性的,可以用c
t
表示系统在第t时间的容量采集数据,为n个应用程序的容量采集数据的累加值,也即相应的,可以用c
1:t
表示系统在从第1时间到第t时间的容量采集数据,c
1:t
=[c1,c2,

,c
t
]。
[0050]
将包括的全部应用程序的容量采集数据序列,确定为系统在所述第一时间段的容量采集数据,并且应用程序的容量采集数据分别用序列表示,并与应用程序存在对应关系,从而快速对系统的容量采集数据按照应用程序进行分类。
[0051]
可选的,所述根据系统包括的应用程序进行分类,包括:根据分类参数对所述系统包括的应用程序进行分类,得到至少一个应用类型的应用程序,所述分类参数包括下述至少一项:功能类型参数、运行时间参数和在线离线参数;获取各所述应用类型的应用程序的容量采集数据。
[0052]
分类参数作为应用程序的分类依据,用于对应用程序进行分类。功能参数用于按照应用程序的功能(或服务)进行分类,示例性的,可以分类得到近线应用程序、流式应用程序或缓存应用程序等;运行时间参数用于按照应用程序常用的运行时间进行分类,示例性的,可以分类得到白天运行应用程序、夜晚运行应用程序、工作日运行应用程序或假期运行应用程序等;在线离线参数用于按照应用程序是在线运行还是离线运行进行分类,示例性的,可以分类得到离线流量应用程序或在线流量应用程序等。此外还可以混合多个分类参数进行分类,示例性的,可以根据功能参数和在线离线参数共同配合对应用程序进行分类,示例性的,可以分类得到离线批量计算应用程序或在线缓存应用程序等。此外分类参数还有其他内容,以及可以根据需要结合使用,对此不进行限定。
[0053]
将容量采集数据根据系统包括的应用程序进行分类,实际是对应用程序进行分类,属于同一应用类型的应用程序的容量采集数据与该应用类型对应,从而按照应用类型,将容量采集数据进行分组,可以将具有相同特征的容量采集数据放在一起进行预测分类容量预测值,可以提高分类容量预测值的预测准确率。
[0054]
通过将配置分类参数为多个内容,增加分类的多样性,以及增加分类的细粒度,从而实现将同一应用类型的应用程序的容量采集数据作为同一组数据进行预测,可以丰富该组中容量采集数据的属于应用类型的特征,进而进行分类容量预测,可以提高分类容量预测的准确率。
[0055]
s203,将属于同一应用类型的应用程序的容量采集数据,输入至所述应用类型对应的分类容量预测模型中,得到所述应用类型对应的分类容量预测值。
[0056]
s204,根据各所述应用类型对应的分类容量预测值,确定所述系统在第二时间段的系统容量预测值,所述第一时间段在所述第二时间段之前。
[0057]
示例性的,第一时间段为第1时间到第t时间,第二时间段为第t时间之后的第p时间到第q时间。可选的,第二时间段为第一时间段会后a时长的时间段,即p为t+1,q为t+a。相应的,系统容量预测值可以表示为在第t时间之后的从t+1时间到t+a时间的容量数据。根据c
1:t
求解c
1+t:t+a
的值。
[0058]
具体的,系统容量预测值可以构建整体的形式化模型其中c
《x
是整体容量在时间序列[1,x)的容量数值。
[0059]
将n个应用程序划分为m个分组,可以构成中粒度的应用类型对应的容量采集数据序列其中,y∈{1,

,m}是类型变量,是y应用类型在第t时间的容量采集数据,由属于y应用类型的应用程序的容量采集数据汇聚得到。
[0060]
其次,对中粒度的聚合容量时序进行分别建模,用成熟的机器学习训练预测方案,获得预测结果汇总获得表示系统容量预测值的序列
[0061]
最终,利用机器学习混合概率分布,混合模型生成描述如下
[0062][0063]
其中,y是离线隐变量,m是混合模型的成分数目,也即应用类型的个数,p(y)是样本类别的先验分布,p(c|y)是细粒度时序c有第y个应用类型对应的成本生成概率,对建模能力进行求解,每个中粒度分组时序来自不同参数确定的神经网络模型,其中每个应用类型的应用程序的容量采集数据可以划分到该应用类型的分组内,从而形成多个不同参数的分类容量预测模型,最终混合模型的参数为θ={φ1,φ2,

,φm}。
[0064]
可选的,所述根据各所述应用类型对应的分类容量预测值,确定所述系统在第二时间段的系统容量预测值,包括:将各所述应用类型对应的分类容量预测值进行累加,得到所述系统在第二时间段的系统容量预测值。
[0065]
通常系统的容量数据是系统包括的各应用程序的容量数据的累加得到的数据。相应的,不同应用类型的分类容量预测值的累加值为系统容量预测值。示例性的,y
t
表示系统在第t时间的系统容量预测值,y
i,t
为第i个应用类型的分类容量预测值。
[0066]
通过累加分类容量预测值,得到系统容量预测值,可以简化系统容量预测值的获取方式,同时加快系统容量的预测速度,提高系统容量预测效率。
[0067]
可选的,所述容量采集数据包括:吞吐量和/或资源消耗量;所述系统容量预测值,包括:资源消耗量。
[0068]
其中,吞吐量可以是指当前承接流量qps,资源消耗量可以是指cpu使用量。qps影响cpu使用量,从而qps可以用于衡量cpu使用量,进而,qps可以用于预测cpu使用量。资源消耗量可以用于表征系统的性能、抗压能力和负载等。
[0069]
此外,容量预测值还可以包括资源使用率。可以计算系统包括的应用程序的cpu总量之和,得到系统的cpu总量。将系统容量预测值包括的cpu使用量与系统的cpu总量的比值,确定为预测的cpu使用率,还可以将该cpu使用率,即资源使用率,也确定为系统容量预测值。
[0070]
通过配置容量采集数据和系统容量预测值的具体内容,可以实现对系统的性能、负载和抗压能力等进行评估,从而对系统进行应用程序和计算机服务器进行扩容或缩容,有效利用系统的容量,减少系统的容量的浪费,并及时响应容量不足的情况,提高系统的稳定性。
[0071]
根据本公开的技术方案,通过获取应用程序在第一时间段的容量采集数据,并按照采集时间形成应用程序的容量采集数据序列,并将系统中全部应用程序的容量采集数据序列确定为系统在第一时间段的容量采集数据,可以获取系统中每个应用程序的容量采集数据,增加系统的容量采集范围,并针对性不同应用类型进行容量预测,实现精准预测系统
容量,同时获取第一时间段的多个采集时间下的容量采集数据,可以获取应用程序的容量数据和时间之间的关系,增加容量与时间的特征,从而预测未来时间段的容量数据,提高第二时间段的容量预测准确率。
[0072]
图3是根据本公开实施例公开的另一种系统容量预测方法的流程图,基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。所述应用类型对应的分类容量预测模型具体化为:应用程序对应的应用容量预测模型;所述将属于同一应用类型的应用程序的容量采集数据,输入至所述应用类型对应的分类容量预测模型中,得到所述应用类型对应的分类容量预测值,具体化为:在属于同一应用类型的应用程序中,将所述应用程序的容量采集数据,输入至所述应用程序对应的应用容量预测模型中,得到所述应用程序的应用容量预测值;将各所述属于同一应用类型的应用程序的应用容量预测值进行累加,得到所述应用类型对应的分类容量预测值。
[0073]
s301,获取系统在第一时间段的容量采集数据,并根据系统包括的应用程序进行分类。
[0074]
s302,在属于同一应用类型的应用程序中,将所述应用程序的容量采集数据,输入至所述应用程序对应的应用容量预测模型中,得到所述应用程序的应用容量预测值。
[0075]
应用程序对应的应用容量预测模型用于根据该应用程序在第一时间段的容量采集数据,预测得到该应用程序在第二时间段的应用容量预测值。应用容量预测值为应用程序在第二时间段的容量数据。实际上,本公开实施例将应用类型对应的分类容量预测模型细化为应用类型的每个应用程序对应的应用容量预测模型。即将一个应用类型的分类容量预测细化为该应用类型下的每个应用程序的应用容量预测。其中,一个应用程序对应的应用容量预测模型的训练样本可以是:该应用程序在第三时间段的容量采集数据和在第四时间段的容量采集数据,其中,第三时间段的时长与第一时间段的时长相同,第四时间段的时长与第二时间的时长相同,第三时间段与第四时间段之间的时长与第一时间段的时长与第二时间段的时长相同。
[0076]
同一应用类型的应用程序对应的应用容量预测模型可以相同。不同应用类型的应用程序对应的应用容量预测模型可以不同。在相同的情况下,一个应用程序对应的应用容量预测模型的训练样本可以是:相同模型的多个应用程序在第三时间段的容量采集数据和在第四时间段的容量采集数据。
[0077]
s303,将各所述属于同一应用类型的应用程序的应用容量预测值进行累加,得到所述应用类型对应的分类容量预测值。
[0078]
一个应用类型的分类容量预测值为该应用类型下的全部应用程序的应用容量预测值的累加。
[0079]
s304,根据各所述应用类型对应的分类容量预测值,确定所述系统在第二时间段的系统容量预测值,所述第一时间段在所述第二时间段之前。
[0080]
可选的,所述应用程序对应的应用容量预测模型包括至少一个时长类型的时长容量预测模型;所述将所述应用程序的容量采集数据,输入至所述应用程序对应的应用容量预测模型中,得到所述应用程序的应用容量预测值,包括:将所述应用程序的容量采集数据,输入至所述应用程序对应的各所述时长类型的时长容量预测模型中,得到各所述时长类型对应的时长容量预测值;获取各所述时长类型的权重;根据各所述时长类型的权重,对
各所述时长类型对应的时长容量预测值进行加权计算,得到所述应用程序的应用容量预测值。
[0081]
时长类型用于对第一时间段的时长,对第一时间段的容量采集数据进行分类。时长类型可以是指第一时间段的时长的类型。示例性的,时长类型可以包括一天、n天、一周、n周、一个月、n月、一年或n年等。不同时长类型的第一时间段的容量采集数据可以是具有不同特征,从而可以分别独立进行预测,进一步将容量预测在时间上的精准性。时长容量预测模型用于根据该应用程序根据时长类型对应的容量采集数据,预测得到该应用程序在第二时间段的时长容量预测值。时长容量预测值为应用程序以时长类型对应的容量采集数据为依据在第二时间段预测的容量数据。时长容量预测值用于结合其他时长类型的时长容量预测值,确定应用容量预测值。其中,一个时长类型对应的时长容量预测模型的训练样本可以是:应用程序在时长类型对应的容量采集数据和在第四时间段的容量采集数据,其中,第三时间段包括时长类型对应的容量采集数据的采集时间覆盖的时间段,第三时间段的时长与第一时间段的时长相同,第四时间段的时长与第二时间的时长相同,第三时间段与第四时间段之间的时长与第一时间段的时长与第二时间段的时长相同。
[0082]
将应用程序的容量采集数据,输入至应用程序对应的各所述时长类型的时长容量预测模型中,得到各时长类型对应的时长容量预测值,可以是:在应用程序的容量采集数据中,获取时长类型对应的容量采集数据,并输入至该时长类型的时长容量预测模型中,得到该时长类型对应的时长容量预测值。
[0083]
不同时长类型的权重可以不同,也可以相同。加权计算可以是:将时长类型的权重与该时长类型对应的时长容量预测值相乘,并将各时长类型的乘积进行累加,得到应用程序的应用容量预测值。
[0084]
其中,权重可以根据业务需求或所处应用场景进行配置。示例性的,白天和/或夜间的应用场景可以将一天类型的权重增大,工作日和/或周末的应用场景可以将一周类型的权重增大。在一个具体的例子中,获取的第一时间段内的容量采集数据包括各应用程序在周一一天的容量采集数据和上周的容量采集数据,第二时间段为周二一天。针对每个应用程序,将周一的容量采集数据输入对应的一天类型的时长容量预测模型中,得到第一结果a,将上周的容量采集数据输入对应的一周类型的时长容量预测模型中,得到第二结果b。其中,一天类型的权重为0.7,一周类型的权重为0.3,该应用程序的应用容量预测值为0.7*a+0.3*b。
[0085]
通过将应用类型对应的容量采集数据细化为在不同时长类型下的容量采集数据,并输入到时长类型对应的容量预测模型中,针对每个时长类型预测得到时长容量预测值,并根据时长类型的权重进行加权计算,确定该应用程序在第二时间段的应用容量预测值,实现将应用容量的预测拆分成不同时长的容量预测,进一步细化分解容量预测,准确刻画应用程序在不同时间的容量,提高容量预测的准确率,同时,可以适配不同时长应用场景配置权重,丰富容量预测的应用场景,进而提高容量预测的准确率。
[0086]
根据本公开的技术方案,通过将应用类型对应的容量采集数据细化为该应用类型下的各应用程序的容量采集数据,并输入到应用程序对应的容量预测模型中,针对每个应用程序预测得到应用容量预测值,并确定该应用类型在第二时间段的分类容量预测值,实现将分类容量的预测拆分成各应用程序的容量预测,可以基于细粒度分解容量预测,准确
刻画一个应用程序的容量,提高容量预测的准确率,并有效提高复杂计算机系统的容量预测准确率,满足庞大计算机系统容量预测的应用需求。
[0087]
图4是根据本公开实施例公开的另一种系统容量预测方法的场景图。系统容量预测方法可以包括:
[0088]
s401,获取复杂系统的整体采集容量。
[0089]
整体采集容量为系统包括的应用程序的容量采集数据,具体包括吞吐量和/或资源消耗量。获取系统在第一时间段的容量采集数据,并根据系统包括的应用程序进行分类。
[0090]
具体的,系统在从第1时间到第t时间的容量采集数据c
1:t
=[c1,c2,

,c
t
],系统在第t时间的容量采集数据其中,第i个应用程序在第t时间采集的容量采集数据c
i,t
。而第i个应用程序在从第1时间到第t时间的第一时间段的容量采集数据,c
i,1:t
=[c
1,t
,c
2,t
,c
3,t

……ci,t
]。
[0091]
s402,按照应用类型拆分m个分组类型进行预测。
[0092]
将属于同一应用类型的应用程序的容量采集数据,输入至应用类型对应的分类容量预测模型中,得到应用类型对应的分类容量预测值。
[0093]
具体的,应用类型对应的容量采集数据序列其中,y∈{1,

,m}是类型变量,是y应用类型在第t时间的容量采集数据,由属于y应用类型的应用程序的容量采集数据汇聚得到。应用类型对应的分类容量预测值为
[0094]
s403,将m个中粒度分类容量预测值聚合成整体的系统容量预测值。
[0095]
根据各应用类型对应的分类容量预测值,确定系统在第二时间段的系统容量预测值,第一时间段在第二时间段之前。容量预测值为资源消耗量。
[0096]
具体的,将各应用类型对应的分类容量预测值累加得到
[0097]
在一个具体例子中,如图5所示,获取细粒度的应用程序的容量采集数据,并按照应用程序的应用类型进行分组,构建网格(mesh)的拓扑结构,得到中粒度的应用类型的容量采集数据。其中,应用类型可以采用不同维度(分类参数)确定,实现多元容量预测。针对每个应用类型,将该应用类型的容量采集数据,预测得到该应用类型对应的分类容量预测值。累加多个应用类型的分类容量预测值,得到复杂系统的整体的系统容量预存至。
[0098]
对于应用分类的容量预测拆分方法,通过引入更多其他维度时序的类型,例如夜间和白天维度,可以将细粒度应用功能程序的类型划分得更细分和精确,从而增加时序分组数量,刻画的维度更细致,汇聚后的多个分类容量预测值,更准确地预测出系统的整体预测容量。
[0099]
进一步的,应用类型对应的分类容量预测模型包括:应用程序对应的至少一个时长类型对应的容量采集数据,具体包括:一天的时长容量预测模型和一周的时长容量预测模型;在应用程序的容量采集数据中,获取时长类型对应的容量采集数据,并输入至该时长类型的时长容量预测模型中,得到该时长类型对应的时长容量预测值。获取各时长类型的权重;根据各时长类型的权重,对各时长类型下对应的时长容量预测值进行加权计算,得到该应用程序的应用容量预测值。将各属于同一应用类型的应用程序的应用容量预测值进行
累加,得到应用类型对应的分类容量预测值。
[0100]
如图6所示,在线计算机系统中的多个计算机服务应用程序(application)会根据业务场景进行网络连接和拓扑组织,在对于每个计算机服务应用程序会有多个服务实例(instance)组成,每个实例在不同时间段会产生一系列数据指标,与容量相关的指标,通常是服务实例的qps和服务实例cpu利用率cpu_percent。将服务实例在多个时间段产出的qps和cpu利用率进行采集,并将这些采集数据进行持久化存储,为下一步处理做好准备。
[0101]
将服务实例的qps和cpu利用率进行数据汇聚和过滤处理,得到每个时长类型对应的容量采集数据。具体的,首先按照服务实例进行汇总,然后再按照计算机服务应用程序进行汇聚,通过设定的方差阈值过滤掉其中的一些异常波动数据,最后将qps和cpu利用率映射到时间序列上,形成容量采集数据,并按照时长类型,确定一天时长类型对应的容量采集数据和一周时长类型对应的容量采集数据。
[0102]
对天级维度的时长容量预测模型和周级维度的时长容量预测模型进行建模,构造已有数据样本的训练模型,从而可以预估该应用程序的cpu使用量。其中,一天时长类型的时长容量预测模型,对应天级维度的时长容量预测模型,一周时长类型的时长容量预测模型,对应周级维度的时长容量预测模型。对同一个计算机程序服务应用程序构建天级维度的时长容量预测模型和周级维度的时长容量预测模型,是为满足不同场景的容量波动,同时也可以进行双模型的交叉验证与使用,例如白天和/或夜间需要场景使用天级维度的时长容量预测模型,工作日和/或周末区分场景使用周级维度的时长容量预测模型。根据不同的应用场景,对不同的时长类型配置不同的权重,并对不同的时长容量预测值进行加权,得到一个应用程序的应用容量预测值。从而,可以得到每个应用程序对应的应用容量预测值。
[0103]
对相同应用类型的计算机服务应用程序进行划分,应用类型包括:在线服务、离线服务、离线批量计算服务、流式服务或近线服务等。通过相同的应用程序的聚合,形成中粒度的分类容量预测模型,可以准确地通过天级维度的时长容量预测模型和周级维度的时长容量预测模型推导预测出应用类型的分类容量预测模型。并通过相同应用类型的应用容量预测值的聚合,形成中粒度的分类容量预测值。通过多个分类容量预测值的,可以预测得到复杂系统的整体容量数据,即系统容量预测值。
[0104]
本公开实施例提出一种基于中粒度时序拆分的分组容量预测方法,对细粒度计算机服务应用程序采用采集和分时建模落地应用,从细粒度时序应用预测容量汇总到中粒度分组时序分类预测容量,最终实现复杂系统整体的系统预测容量,提升整体容量预估的准确性与精度,目前可以应用在搜索引起推荐系统、信息流推荐系统和app云端服务系统中,覆盖数十万计算机服务应用,覆盖在线系统数万台机器规模。
[0105]
根据本公开的实施例,图7是本公开实施例中的系统容量预测装置的结构图,本公开实施例适用于基于系统在第一时间段的容量,对系统在第二时间段的容量进行预测的情况。该装置采用软件和/或硬件实现,并具体配置于具备一定数据运算能力的电子设备中。
[0106]
如图7所示的一种系统容量预测装置700,包括:应用分类模块701、分类预测模块702和系统预测模块703;其中,
[0107]
应用分类模块701,用于获取系统在第一时间段的容量采集数据,并根据系统包括的应用程序进行分类;
[0108]
分类预测模块702,用于将属于同一应用类型的应用程序的容量采集数据,输入至
所述应用类型对应的分类容量预测模型中,得到所述应用类型对应的分类容量预测值;
[0109]
系统预测模块703,用于根据各所述应用类型对应的分类容量预测值,确定所述系统在第二时间段的系统容量预测值,所述第一时间段在所述第二时间段之前。
[0110]
根据本公开的技术方案,通过将系统在第一时间段的容量采集数据拆分成应用类型对应的容量采集数据,并输入到应用类型对应的容量预测模型中,针对每个应用类型预测得到分类容量预测值,并确定系统在第二时间段的系统容量预测值,实现将系统容量的预测拆分成各应用类型的容量预测,可以基于细粒度分解容量预测,准确刻画一个应用类型的应用程序容量,提高容量预测的准确率,并有效提高复杂计算机系统的容量预测准确率,满足庞大计算机系统容量预测的应用需求。
[0111]
进一步的,所述应用分类模块701,包括:时序序列获取单元,用于获取系统包括的应用程序在第一时间段的容量采集数据,并按照采集时间形成所述应用程序的容量采集数据序列;应用序列统计单元,用于将所述系统包括的应用程序的容量采集数据序列,确定为所述系统在所述第一时间段的容量采集数据。
[0112]
进一步的,所述应用分类模块701,包括:应用程序划分单元,用于根据分类参数对所述系统包括的应用程序进行分类,得到至少一个应用类型的应用程序,所述分类参数包括下述至少一项:功能类型参数、运行时间参数和在线离线参数;容量采集数据分类统计单元,用于获取各所述应用类型的应用程序的容量采集数据。
[0113]
进一步的,所述应用类型对应的分类容量预测模型包括:应用程序对应的应用容量预测模型;所述分类预测模块702,包括:应用容量预测单元,用于矢量坐标点获取单元,用于在属于同一应用类型的应用程序中,将所述应用程序的容量采集数据,输入至所述应用程序对应的应用容量预测模型中,得到所述应用程序的应用容量预测值;应用容量累加单元,用于将各所述属于同一应用类型的应用程序的应用容量预测值进行累加,得到所述应用类型对应的分类容量预测值。
[0114]
进一步的,所述应用程序对应的应用容量预测模型包括至少一个时长类型的时长容量预测模型;所述应用容量预测单元,包括:时长维度预测子单元,用于将所述应用程序的容量采集数据,输入至所述应用程序对应的各所述时长类型的时长容量预测模型中,得到各所述时长类型对应的时长容量预测值;时长权重获取子单元,用于获取各所述时长类型的权重;时长预测加权子单元,用于根据各所述时长类型的权重,对各所述时长类型对应的时长容量预测值进行加权计算,得到所述应用程序的应用容量预测值。
[0115]
进一步的,所述应用分类模块701,包括:分类容量累加单元,用于将各所述应用类型对应的分类容量预测值进行累加,得到所述系统在第二时间段的系统容量预测值。
[0116]
进一步的,所述容量采集数据包括:吞吐量和/或资源消耗量;所述系统容量预测值,包括:资源消耗量。
[0117]
上述系统容量预测装置可执行本公开任意实施例所提供的系统容量预测方法,具备执行系统容量预测方法相应的功能模块和有益效果。
[0118]
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
[0119]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0120]
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性区域图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0121]
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
[0122]
设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0123]
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如系统容量预测方法。例如,在一些实施例中,系统容量预测方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram 803并由计算单元801执行时,可以执行上文描述的系统容量预测方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行系统容量预测方法。
[0124]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0125]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或区域图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0126]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供
指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0127]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0128]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0129]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0130]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0131]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1