大数据引擎内存管理方法及装置制造方法及图纸

技术编号:37270924 阅读:13 留言:0更新日期:2023-04-20 23:40
本发明专利技术提供一种大数据引擎内存管理方法及装置,所述方法包括:初始化网络管理器,以供网络缓存池生成预设数量的内存段;基于任务执行线程创建缓冲池,并设定所述内存段的申请上限;接收所述内存段的申请信息,并基于所述申请信息分配所述内存段,且当所述缓冲池中没有可用内存段且所述内存段的申请数量小于所述申请上限,则向所述网络缓存池申请所述内存段;当所述内存段的申请数量大于所述申请上限或所述网络缓存池没有可用内存段,则停止所述任务执行线程。本发明专利技术实施例提供的大数据引擎内存管理方法及装置,减少了系统内存的Full GC时间,提高系统运行效率。提高系统运行效率。提高系统运行效率。

【技术实现步骤摘要】
大数据引擎内存管理方法及装置


[0001]本专利技术涉及大数据存储
,尤其涉及一种大数据存储方法、引擎内存管理模型、方法及装置。

技术介绍

[0002]目前,大数据计算引擎主要用Java或是基于JVM(Java Virtual Machine)的编程语言实现的,例如Apache Hadoop、Apache Spark、Apache Drill、Apache Flink等。Java语言的好处在于程序员不需要太关注底层内存资源的管理,因为JVM提供自动的内存开辟、销毁、回收等机制,大大的方便了软件的开发,使开发人员可以专注于业务逻辑。
[0003]但是在大数据应用场景中,大数据计算引擎往往处理的数据量巨大,单纯依靠JVM在内存中缓存和高效处理数据就会出现很多问题。在大数据场景下,JVM内存管理的不足之处:JVM的对象的内存有效利用率较低;垃圾回收(GC,Garbage Collection)耗时长,严重影响交互效率;OutOfMemoryError错误频发,导致JVM崩溃,严重影响系统的正常运行等。

技术实现思路

[0004]本专利技术提供一种大数据引擎内存管理方法及装置,用以解决现有技术中存在的问题。
[0005]本专利技术提供一种大数据引擎内存管理方法,包括:
[0006]初始化网络管理器,以供网络缓存池生成预设数量的内存段;
[0007]基于任务执行线程创建缓冲池,并设定所述内存段的申请上限;
[0008]接收所述内存段的申请信息,并基于所述申请信息分配所述内存段,且当所述缓冲池中没有可用内存段且所述内存段的申请数量小于所述申请上限,则向所述网络缓存池申请所述内存段;当所述内存段的申请数量大于所述申请上限或所述网络缓存池没有可用内存段,则停止所述任务执行线程;
[0009]其中,在大数据引擎内存管理模型上执行所述大数据引擎内存管理方法。
[0010]根据本专利技术提供的一种大数据引擎内存管理方法,所述方法还包括:当所述内存段消费完成后,将所述内存段释放回所述缓冲池。
[0011]根据本专利技术提供的一种大数据引擎内存管理方法,所述方法还包括:当所述内存段的申请数量大于所述申请上限,则将所述缓冲池中的内存段释放回所述网络缓存池。
[0012]根据本专利技术提供的一种大数据引擎内存管理方法,在执行所述初始化网络管理器之前,还包括:将待处理数据写入内存段,所述将待处理数据写入内存段,具体包括:基于待处理数据类型加载对应的序列化器;利用所述序列化器对所述待处理数据进行序列化操作,得到二进制数据;将所述二进制数据写入内存段。
[0013]根据本专利技术提供的一种大数据引擎内存管理方法,所述大数据引擎内存管理模型包括:堆内存区,所述堆内存区包括引擎堆上内存区和任务堆上内存区。
[0014]根据本专利技术提供的一种大数据引擎内存管理方法,所述大数据引擎内存管理模型
还包括:堆外内存区,所述堆外内存区包括引擎堆外内存区、任务堆外内存区、网络缓冲内存区、管理内存区、JVM元空间以及JVM执行开销区。
[0015]根据本专利技术提供的一种大数据引擎内存管理方法,所述任务堆上内存区包括:网络缓存池、内存资源管理池以及预留堆内存区。
[0016]本专利技术还提供一种大数据引擎内存管理装置,包括:
[0017]初始化模块,用于:初始化网络管理器,以供网络缓存池生成预设数量的内存段;
[0018]创建模块,用于:基于任务执行线程创建缓冲池,并设定所述内存段的申请上限;
[0019]分配模块,用于:接收所述内存段的申请数量,并基于所述申请信息分配所述内存段,且当所述缓冲池中没有可用内存段且所述申请数量小于所述申请上限,则向所述网络缓存池申请所述内存段;当所述申请数量大于所述申请上限或所述网络缓存池没有可用内存段,则停止所述任务执行线程;其中,在大数据引擎内存管理模型上执行所述大数据引擎内存管理方法。
[0020]本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述大数据引擎内存管理方法的步骤。
[0021]本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述大数据引擎内存管理方法的步骤。
[0022]本专利技术提供的大数据引擎内存管理方法及装置,通过基于任务执行线程创建输入缓冲池和输出缓冲池,利用上述缓冲池与网络缓存池进行连接,使内存段形成二级缓存处理,同时,输入缓冲池与输出缓冲池的生命周期与任务管理器的产生与销毁保持同步,从而使的缓冲池中内存段不会被执行垃圾回收过程。基于此,减少了系统内存的Full GC(对整个堆上内存区进行扫描并进行内存回收)时间,提高系统运行效率。
附图说明
[0023]为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]图1是本专利技术提供的大数据引擎内存管理方法的流程示意图;
[0025]图2是本专利技术提供的内存段的数据写入示意图;
[0026]图3是本专利技术提供的大数据引擎内存管理模型的结构示意图;
[0027]图4是本专利技术提供的网络传输中内存管理示意图;
[0028]图5是本专利技术提供的大数据引擎内存管理装置的结构示意图;
[0029]图6是本专利技术提供的电子设备的结构示意图。
具体实施方式
[0030]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术中的附图,对本专利技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳
动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0031]图1是本专利技术提供的大数据引擎内存管理方法的流程示意图,如图1所示,所述方法包括:
[0032]S110,初始化网络管理器,以供网络缓存池生成预设数量的内存段;
[0033]S120,基于任务执行线程创建缓冲池,并设定所述内存段的申请上限;
[0034]S130,接收所述内存段的申请信息,并基于所述申请信息分配所述内存段,且当所述缓冲池中没有可用内存段且所述内存段的申请数量小于所述申请上限,则向所述网络缓存池申请所述内存段;当所述内存段的申请数量大于所述申请上限或所述网络缓存池没有可用内存段,则停止所述任务执行线程;
[0035]其中,在大数据引擎内存管理模型上执行所述大数据引擎内存管理方法。
[0036]需要说明的是,任务管理器启动时,对应的初始化网络管理器,该网络管理器会对网络缓存池进行管理,网络缓存池在网络管理器的指示下生成一定数量的内存段,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种大数据引擎内存管理方法,其特征在于,包括:初始化网络管理器,以供网络缓存池生成预设数量的内存段;基于任务执行线程创建缓冲池,并设定所述内存段的申请上限;接收所述内存段的申请信息,并基于所述申请信息分配所述内存段,且当所述缓冲池中没有可用内存段且所述内存段的申请数量小于所述申请上限,则向所述网络缓存池申请所述内存段;当所述内存段的申请数量大于所述申请上限或所述网络缓存池没有可用内存段,则停止所述任务执行线程;其中,在大数据引擎内存管理模型上执行所述大数据引擎内存管理方法。2.根据权利要求1所述的大数据引擎内存管理方法,其特征在于,所述方法还包括:当所述内存段消费完成后,将所述内存段释放回所述缓冲池。3.根据权利要求1所述的大数据引擎内存管理方法,其特征在于,所述方法还包括:当所述内存段的申请数量大于所述申请上限,则将所述缓冲池中的内存段释放回所述网络缓存池。4.根据权利要求1所述的大数据引擎内存管理方法,其特征在于,在执行所述初始化网络管理器之前,还包括:将待处理数据写入内存段,所述将待处理数据写入内存段,具体包括:基于待处理数据类型加载对应的序列化器;利用所述序列化器对所述待处理数据进行序列化操作,得到二进制数据;将所述二进制数据写入内存段。5.根据权利要求1所述的大数据引擎内存管理方法,其特征在于,所述大数据引擎内存管理模型包括:堆内存区,所述堆内存区包括引擎堆上内存区和任务堆上内存区。6...

【专利技术属性】
技术研发人员:翟舒珂
申请(专利权)人:中移雄安信息通信科技有限公司中国移动通信集团有限公司
类型:发明
国别省市:

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

1