一种流引擎的内存管理方法及相关组件技术

技术编号:38628103 阅读:15 留言:0更新日期:2023-08-31 18:28
本发明专利技术公开了一种流引擎的内存管理方法及相关组件,涉及流任务数据处理领域,通过流引擎被分配到的堆内存的总内存容量,和实际生产环境中该流引擎在实际工作时所需的最小内存容量,预估流引擎被分配到的堆内存中的空闲内存,实现对空闲内存的实时计算,为内存管理提供更准确的数据基础,操作便捷,准确性高;并将所述空闲内存配置给所述数据处理平台中的其他流引擎使用,以使空闲内存被动态释放给其他流引擎使用,从而达到资源最大化使用,节约资源,提高数据处理平台的处理性能。提高数据处理平台的处理性能。提高数据处理平台的处理性能。

【技术实现步骤摘要】
一种流引擎的内存管理方法及相关组件


[0001]本专利技术涉及流任务数据处理领域,特别是涉及一种流引擎的内存管理方法及相关组件。

技术介绍

[0002]随着互联网技术的快速发展和普及,其用户产生的数据量也呈现出爆炸式增长的趋势,在数据处理领域中,企业一般会在数据处理平台中配置多个流引擎共同对数据进行处理。Flink作为新一代的流引擎,以jvm(java virtual machine,Java虚拟机)为运行时环境来执行大数据应用的具体计算任务。其中,Flink引擎等流引擎依赖jvm的垃圾回收机制(Garbage Collection,GC)处理放置在jvm堆内存当中的数据对象,堆内存中又包括年轻代内存和老年代内存,即根据垃圾回收机制分别对年轻代内存和老年代内存中存储的数据对象进行清理,对数据对象进行清理的频率称作GC发生频率。相应的,对年轻代内存中的数据对象进行清理的频率称作年轻代GC发生频率,对老年代内存中的数据对象进行清理的频率称作老年代GC发生频率。
[0003]现有技术中,对于数据处理平台中的多个流引擎,为每个流引擎分配堆内存,每个流引擎被分配到的内存大小是固定的,实际使用中可能会出现流引擎内存过剩的情况,即该流引擎所处理的数据的数据流量较小,只需少量的内存就可以完成数据处理,但该流引擎仍被分配了大量内存,导致出现过多的空闲内存,造成资源的浪费。

技术实现思路

[0004]本专利技术的目的是提供一种流引擎的内存管理方法及相关组件,使空闲内存被动态释放给其他流引擎使用,从而达到资源最大化使用,节约资源,提高数据处理平台的处理性能。
[0005]为解决上述技术问题,本专利技术提供了一种流引擎的内存管理方法,应用于数据处理平台中的处理器,所述数据处理平台还包括多个流引擎,所述内存管理方法包括:
[0006]确定所述流引擎被分配到的堆内存的总内存容量;
[0007]确定所述流引擎在实际工作时所需的最小内存容量;
[0008]根据所述堆内存的总内存容量和所述最小内存容量,确定所述流引擎被分配到的堆内存中的空闲内存;
[0009]将所述空闲内存配置给所述数据处理平台中的其他流引擎使用。
[0010]优选地,确定所述流引擎在实际工作时所需的最小内存容量,包括:
[0011]确定所述流引擎在所述数据处理平台进入极限压测状态下的第一GC发生频率;
[0012]获取所述数据处理平台在实际工作状态下,在预设处理时长内接收到的数据的所有数据流量,将所有所述数据流量中数值最大的数据流量作为峰值数据流量;
[0013]获取所述流引擎在实际工作时处理的数据的实时数据流量;
[0014]确定所述流引擎在实际工作时的第二GC发生频率;
[0015]根据所述堆内存的总内存容量、所述第一GC发生频率、所述峰值数据流量、所述实时数据流量及所述第二GC发生频率,确定所述流引擎在实际工作时所需的最小内存容量。
[0016]优选地,确定所述流引擎在所述数据处理平台进入极限压测状态下的第一GC发生频率,包括:
[0017]向所述数据处理平台中的kafka写入预设大小的数据流量,以使所述数据处理平台进入所述极限压测状态;
[0018]确定所述流引擎在所述数据处理平台进入极限压测状态下的年轻代GC发生频率;
[0019]将所述年轻代GC发生频率作为所述第一GC发生频率。
[0020]优选地,获取所述数据处理平台在实际工作状态下,在预设处理时长内接收到的数据的所有数据流量,将所有所述数据流量中数值最大的数据流量作为峰值数据流量,包括:
[0021]通过kibana接口,获取所述数据处理平台在实际工作状态下的ES监控索引在所述预设处理时长内的所有索引速度;
[0022]将所有所述索引速度中数值最大的索引速度作为峰值数据流量。
[0023]优选地,获取所述流引擎在实际工作时处理的数据的实时数据流量,包括:
[0024]通过Flink Job Api获取所述流引擎在实际工作时处理的数据的实时数据流量。
[0025]优选地,确定所述流引擎在实际工作时的第二GC发生频率,包括:
[0026]每经过一个预设周期,确定所述预设周期中所述流引擎在实际工作时的所有年轻代GC发生频率;
[0027]将所有所述年轻代GC发生频率中数值最小的年轻代GC发生频率作为所述第二GC发生频率。
[0028]优选地,根据所述堆内存的总内存容量和所述最小内存容量,确定所述流引擎被分配到的堆内存中的空闲内存,包括:
[0029]根据所述堆内存的总内存容量、所述第一GC发生频率、所述峰值数据流量、所述实时数据流量、所述第二GC发生频率及空闲内存关系式,确定所述流引擎被分配到的堆内存中的空闲内存,所述空闲内存关系式为:
[0030][0031]优选地,在获取所述流引擎在实际工作时处理的数据的实时数据流量之后,还包括:
[0032]判断预设处理时间内,所述流引擎在实际工作时处理的数据的实时数据流量是否一直小于预设的数据流量阈值;
[0033]若是,则判定所述流引擎在实际工作时处理的数据的数据量不足;
[0034]若否,则进入确定所述流引擎在实际工作时的第二GC发生频率的步骤。
[0035]本专利技术还提供了一种数据处理平台,包括多个流引擎,还包括:
[0036]存储器,用于存储计算机程序;
[0037]处理器,用于执行所述计算机程序时实现如上述所述的流引擎的内存管理方法的步骤。
[0038]本专利技术还提供了一种计算机可读存储介质,所述目标计算机可读存储介质上储存有计算机程序,所述目标计算机程序被处理器执行时实现如上述所述的流引擎的内存管理方法的步骤。
[0039]本专利技术提供的一种流引擎的内存管理方法及相关组件,通过流引擎被分配到的堆内存的总内存容量,和实际生产环境中该流引擎在实际工作时所需的最小内存容量,预估流引擎被分配到的堆内存中的空闲内存,实现对空闲内存的实时计算,为内存管理提供更准确的数据基础,操作便捷,准确性高;并将所述空闲内存配置给所述数据处理平台中的其他流引擎使用,以使空闲内存被动态释放给其他流引擎使用,从而达到资源最大化使用,节约资源,提高数据处理平台的处理性能。
附图说明
[0040]为了更清楚地说明本专利技术实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0041]图1为本专利技术实施例提供的一种流引擎的内存管理方法的流程图;
[0042]图2为本专利技术实施例提供的一种流引擎内存分配页面示意图;
[0043]图3为本专利技术实施例提供的一种流引擎的内存管理装置的结构示意图;
[0044]图4为本专利技术实施例提供的一种数据处理平台的示意图;...

【技术保护点】

【技术特征摘要】
1.一种流引擎的内存管理方法,其特征在于,应用于数据处理平台中的处理器,所述数据处理平台还包括多个流引擎,所述内存管理方法包括:确定所述流引擎被分配到的堆内存的总内存容量;确定所述流引擎在实际工作时所需的最小内存容量;根据所述堆内存的总内存容量和所述最小内存容量,确定所述流引擎被分配到的堆内存中的空闲内存;将所述空闲内存配置给所述数据处理平台中的其他流引擎使用。2.如权利要求1所述的流引擎的内存管理方法,其特征在于,确定所述流引擎在实际工作时所需的最小内存容量,包括:确定所述流引擎在所述数据处理平台进入极限压测状态下的第一GC发生频率;获取所述数据处理平台在实际工作状态下,在预设处理时长内接收到的数据的所有数据流量,将所有所述数据流量中数值最大的数据流量作为峰值数据流量;获取所述流引擎在实际工作时处理的数据的实时数据流量;确定所述流引擎在实际工作时的第二GC发生频率;根据所述堆内存的总内存容量、所述第一GC发生频率、所述峰值数据流量、所述实时数据流量及所述第二GC发生频率,确定所述流引擎在实际工作时所需的最小内存容量。3.如权利要求2所述的流引擎的内存管理方法,其特征在于,确定所述流引擎在所述数据处理平台进入极限压测状态下的第一GC发生频率,包括:向所述数据处理平台中的kafka写入预设大小的数据流量,以使所述数据处理平台进入所述极限压测状态;确定所述流引擎在所述数据处理平台进入极限压测状态下的年轻代GC发生频率;将所述年轻代GC发生频率作为所述第一GC发生频率。4.如权利要求3所述的流引擎的内存管理方法,其特征在于,获取所述数据处理平台在实际工作状态下,在预设处理时长内接收到的数据的所有数据流量,将所有所述数据流量中数值最大的数据流量作为峰值数据流量,包括:通过kibana接口,获取所述数据处理平台在实际工作状态下的ES监控索引在所述预设处理时长内的所有索引速度;将所有所...

【专利技术属性】
技术研发人员:凌婕范渊刘博
申请(专利权)人:杭州安恒信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1