一种内存消耗值预估方法、装置、终端设备及存储介质与流程

文档序号:33726601发布日期:2023-04-06 00:48阅读:46来源:国知局
一种内存消耗值预估方法、装置、终端设备及存储介质与流程

本发明涉及内存预估,尤其涉及一种内存消耗值预估方法、装置、终端设备及存储介质。


背景技术:

1、目前,在生产实践当中,应用容器引擎docker由于其具有的可以移植性、环境的统一性的特点,是各种生产应用的首选的部署方式。而通过docker部署flink cep应用时候,需要根据flink cep配置参数以及处理事件的规模,对其在处理各种事件时所消耗的内存进行一个预估,以制作docker镜像时为其合理地分配计算资源。

2、在现有技术中,基于本地部署的测试环境,通常以人工的方式定量地测试各个因素对内存消耗的影响。例如,当要测试其中一个因素的变化对内存消耗的影响的时候,需要把其余因素保持不变,改变待测试的变量的取值,记录前后的内存使用量。因此,此种人工测试方式存在诸多的局限:

3、1、特征的状态空间巨大,人工测试的方式无法针对所有可能的特征取值进行测试。如“单条数据的平均大小”等属于连续型的变量,其可以在一个范围内连续地取值;

4、2、每次只能够测试1个因素,测试结果无法反映多个因素共同作用下的内存消耗。以“控制变量法”,每次改变1个因素的取值(例如改变x1)并记录其内存消耗的变化,此方法当其余的因素发生变化时,即使x1仍然以相同的步长变化,测试所得的内存消耗的变化值也会有差异;

5、3、人工测试只能发现内存消耗与某个因素之间的大致联系(例如是正相关还是负相关),无法发现内存消耗与某个因素的具体关联模式(例如是线性关系还是指数)。

6、综上,现有技术中对内存消耗的测试方式每次只能够测试一个因素,无法反映多个因素共同作用下的内存消耗,从而导致测试的准确度不高。


技术实现思路

1、本发明提供了一种内存消耗值预估方法、装置、终端设备及存储介质,以解决现有技术中对内存消耗的测试方式每次只能够测试一个因素,无法反映多个因素共同作用下的内存消耗,从而导致测试的准确度不高的技术问题。

2、第一方面,为了解决上述技术问题,本发明提供了一种内存消耗值预估方法,包括:

3、获取应用场景中内存消耗的影响因素;

4、以所述影响因素作为输入特征构建训练数据集,基于gbdt回归建立内存消耗模型;

5、根据所述训练数据集对所述内存消耗模型进行训练,得到训练后的内存消耗模型;

6、根据待测试的业务场景的数据特点构造测试数据集,将所述测试数据集输入至训练后的内存消耗模型,得到内存消耗预估值。

7、优选地,所述内存消耗模型表示为:

8、h0(x)=0

9、h1(x)=h0(x)+t1(x;θ)

10、h2(x)=h1(x)+t2(x;θ)

11、hm(x)=hm-1(x)+tm(x;θ)

12、

13、其中,x为输入特征,hm为第m步的模型,hm-1是上一轮的已知的模型,tm就是第m轮需要加进来的cart树模型;ceta为需要学习的树的结构,包括特征分割点及叶节点的输出;表示令整体损失最小的树结构。

14、优选地,所述内存消耗模型的第m轮的学习目标表示为:

15、l(y(i),hm-1(x(i))+tm(x(i);θ))=(y(i)-hm-1(x(i))-tm(x(i))2

16、=(residual-tm(x(i)))2。

17、优选地,在所述以所述影响因素作为输入特征构建训练数据集之后,所述方法还包括:

18、对所述训练数据集进行标准化处理,得到标准数据集。

19、优选地,所述标准化处理的公式如下:

20、

21、其中,x表示所述训练数据集中的元素,x′表示所述标准数据集中的元素。

22、优选地,所述影响因素包括数据转换为java对象的大小、数据的有序程度、规则的复杂程度、并行度大小和任务的作业数量。

23、第二方面,本发明提供了一种内存消耗值预估装置,包括:

24、数据获取模块,用于获取应用场景中内存消耗的影响因素;

25、模型建立模块,用于以所述影响因素作为输入特征构建训练数据集,基于gbdt回归建立内存消耗模型;

26、模型训练模块,用于根据所述训练数据集对所述内存消耗模型进行训练,得到训练后的内存消耗模型;

27、内存预估模块,用于根据待测试的业务场景的数据特点构造测试数据集,将所述测试数据集输入至训练后的内存消耗模型,得到内存消耗预估值。

28、第三方面,本发明还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述中任意一项所述的内存消耗值预估方法。

29、第四方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述中任意一项所述的内存消耗值预估方法。

30、相比于现有技术,本发明具有如下有益效果:

31、本发明提供一种内存消耗值预估方法,包括:获取应用场景中内存消耗的影响因素;以所述影响因素作为输入特征构建训练数据集,基于gbdt回归建立内存消耗模型;根据所述训练数据集对所述内存消耗模型进行训练,得到训练后的内存消耗模型;根据待测试的业务场景的数据特点构造测试数据集,将所述测试数据集输入至训练后的内存消耗模型,得到内存消耗预估值。

32、本发明拟合机器学习模型,能同时基于多个因素,对内存消耗进行预估,解决了人工测试方法每次只能够测试1个因素、无法反映多个因素共同作用下的内存消耗的缺点。同时,能够建立从各个因素到内存消耗预估值的映射,解决了人工测试方法,无法逐一穷举某个因素可能取值下内存消耗情况的问题。



技术特征:

1.一种内存消耗值预估方法,其特征在于,包括:

2.根据权利要求1所述的内存消耗值预估方法,其特征在于,所述内存消耗模型表示为:

3.根据权利要求2所述的内存消耗值预估方法,其特征在于,所述内存消耗模型的第m轮的学习目标表示为:

4.根据权利要求1所述的内存消耗值预估方法,其特征在于,在所述以所述影响因素作为输入特征构建训练数据集之后,所述方法还包括:

5.根据权利要求4所述的内存消耗值预估方法,其特征在于,所述标准化处理的公式如下:

6.根据权利要求1所述的内存消耗值预估方法,其特征在于,所述影响因素包括数据转换为java对象的大小、数据的有序程度、规则的复杂程度、并行度大小和任务的作业数量。

7.一种内存消耗值预估装置,其特征在于,包括:

8.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任意一项所述的内存消耗值预估方法。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至6中任意一项所述的内存消耗值预估方法。


技术总结
本发明涉及内存预估技术领域,公开了一种内存消耗值预估方法、装置、终端设备及存储介质,方法包括获取应用场景中内存消耗的影响因素;以所述影响因素作为输入特征构建训练数据集,基于gbdt回归建立内存消耗模型;根据所述训练数据集对所述内存消耗模型进行训练,得到训练后的内存消耗模型;根据待测试的业务场景的数据特点构造测试数据集,将所述测试数据集输入至训练后的内存消耗模型,得到内存消耗预估值。本方法能同时基于多个因素,对内存消耗进行预估。

技术研发人员:付承启,江伟,郭剑,陈泳蒸,卢益谦
受保护的技术使用者:广东宜通衡睿科技有限公司
技术研发日:
技术公布日:2024/1/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1