内存参数的确定方法、装置及设备制造方法及图纸

技术编号:19121696 阅读:25 留言:0更新日期:2018-10-10 05:00
本发明专利技术实施例公开了一种内存参数的确定方法、装置及设备。该方法包括:建立ES内存中索引文件占用的内存空间与ES内存中堆内存的内存参数之间的目标映射关系,内存参数表示为堆内存分配的内存空间;统计ES内存中当前索引文件占用的内存空间;基于当前索引文件占用的内存空间和映射关系确定ES内存中堆内存的内存参数。本发明专利技术实施例能够确定合理的ES内存参数,避免ES频繁出现卡顿现象,以及ES内存利用率低的问题。

【技术实现步骤摘要】
内存参数的确定方法、装置及设备
本专利技术涉及通信
,尤其涉及一种内存参数的确定方法、装置及设备。
技术介绍
当前,构建在分布式系统基础架构Hadoop大数据平台上的HBase(一种分布式的、面向列的开源数据库)数据库得到了广泛的应用,它通过采用在搜索引擎中构建二级索引的方式来更好地满足真实业务场景下的复杂查询需求,该搜索引擎即为ES(ElasticSearch,开源搜索服务器)。HBase数据库以检索条件字段和行健(RowKey)在搜索引擎中构造索引,用户在检索时先基于搜索引擎ES检索到满足条件的记录的RowKey,再基于RowKey检索HBase获取对应记录的全部数据。在ES使用过程中,内存设置的堆内存参数HeapSize对数据处理有很大影响。堆内存通常为ES内存中最大的一块内存区域,也是被各个线程共享的内存区域,包括新生代内存、老年代内存和永久代内存。传统的ES内存设置,对于HeapSize通常是基于经验设置固定值。但是,HeapSize设置得过低会导致ES数据加载效率低,在数据不断增加的情况下,ES的内存会逐渐消耗殆尽,降低甚至阻塞了ES索引数据的加载,使ES频繁出现卡顿现象;如果HeapSize设置得过高则会导致ES内存利用率低,降低ES运行效率等问题。
技术实现思路
本专利技术实施例提供了一种内存参数的确定方法、装置及设备,能够确定合理的ES内存参数,避免ES频繁出现卡顿现象,以及ES内存利用率低的问题。第一方面,本专利技术实施例提供了一种内存参数的确定方法,包括:建立开源搜索服务器ES内存中索引文件占用的内存空间与所述ES内存中堆内存的内存参数之间的目标映射关系,所述内存参数表示为所述堆内存分配的内存空间;统计ES内存中当前索引文件占用的内存空间;基于所述当前索引文件占用的内存空间和所述映射关系确定所述ES内存中堆内存的内存参数。第二方面,本专利技术实施例提供了一种内存参数的确定装置,包括:建立单元,用于建立开源搜索服务器ES内存中索引文件占用的内存空间与所述ES内存中堆内存的内存参数之间的目标映射关系,所述内存参数表示为所述堆内存分配的内存空间;统计单元,用于统计ES内存中当前索引文件占用的内存空间;确定单元,用于基于所述当前索引文件占用的内存空间和所述映射关系确定所述ES内存中堆内存的内存参数。第三方面,本专利技术实施例提供了一种内存参数的确定设备,包括:存储器、处理器、通信接口和总线;存储器、处理器和通信接口通过总线连接并完成相互间的通信;存储器用于存储程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行一种内存参数的确定方法,所述内存参数的确定方法包括:建立开源搜索服务器ES内存中索引文件占用的内存空间与所述ES内存中堆内存的内存参数之间的目标映射关系,所述内存参数表示为所述堆内存分配的内存空间;统计ES内存中当前索引文件占用的内存空间;基于所述当前索引文件占用的内存空间和所述映射关系确定所述ES内存中堆内存的内存参数。本专利技术实施例提供了一种内存参数的确定方法、装置及设备,本专利技术实施例中,建立ES内存中索引文件占用的内存空间与ES内存中为堆内存分配的内存空间之间的目标映射关系;统计ES内存中当前索引文件占用的内存空间;基于当前索引文件占用的内存空间和映射关系确定ES内存中堆内存的内存参数。本专利技术实施例中,首先建立了目标映射关系,然后可以统计当前引文件占用的内存空间,基于统计的当前数据和目标映射关系确定出当时合适的内存参数,如此基于当前引文件占用的内存空间来确定内存参数,可以保证内存参数设置的合理性,避免了内存参数设置不和里导致ES频繁出现卡顿现象,以及ES内存利用率低的问题。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本专利技术一实施例提供的内存参数的确定方法的示意性流程图;图2是根据本专利技术一实施例提供的内存参数的确定装置的示意性框图;图3是根据本专利技术一实施例提供的内存参数的确定设备的示意性框图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。JVM(JavaVirtualMachine,Java虚拟机)内存分配主要指的是在堆上的分配,对象的内存分配都是在堆上进行。JVM堆内存分配和回收的机制可以概括为分代分配、分代回收,即根据不同生命周期的对象使用不同的算法,基于对象生命周期的分析后得出的垃圾回收算法。依据分析,ES的内存占用是具有线性特征的,数学模型如下:JVM内存=K1+K2+K3+K4+K5。其中,K1表示Java虚拟机栈内存,即Java方法执行的内存,占用内存不多;K2表示本地方法栈内存,即Java方法执行Native方法的内存,占用内存不多;K3表示方法区内存,即各个线程共享的内存区域,最大64M;K4表示程序计数器内存,即Java内存中最小的一块内存区域,它的作用是当前线程所执行的字节码的行号指示器;K5表示堆内存(HeapSize),即Java虚拟机所管理的内存中最大的一块内存区域,也是被各个线程共享的内存区域。堆内存K5包括三部分:K51、K52和K53。K51表示新生代内存占用空间,在创建对象时,首先发生在新生代为对象份分配内存(大对象可以直接在老年代分配内存),大部分的对象在创建后很快就不再使用,因此很快对象变得不可达,于是被新生代的GC(GarbageCollection,垃圾回收)机制清理掉,这个GC机制被称为新生代垃圾回收MinorGC或叫新生代垃圾回收YoungGC。执行MinorGC并不代表新生代内存不足,它事实上只表示在Eden区上的GC,不会导致老年代垃圾回收FullGC,所以不会导致应用ES出现卡顿现象。K52表示老年代内存占用空间,创建的对象如果在新生代存活了足够长的时间而没有被GC机制清理掉(即在几次YoungGC后存活了下来),则会被复制到老年代,老年代的空间一般比新生代大,能存放更多的对象,在老年代上发生的GC次数也比新生代少。当老年代内存不足时,将执行MajorGC,也叫FullGC,ES的卡顿就主要是由该类FullGC导致的。K53表示永久代内存占用空间,常量池中的常量和类等信息:常量的回收很简单,没有引用了就可以被回收。基于经验可知,JVM内存的各部分中K1、K2、K3、K4相对占用空间较小,并且固定,JVM内存主要由K5构成,包括新生代内存占用空间、老年代内存占用空间和永久代内存占用空间的总和。对于内存参数HeapSize的设定主要考虑到新生代、老年代和永久代占用内存的总和大小,HeapSize总内存占本文档来自技高网...
内存参数的确定方法、装置及设备

【技术保护点】
1.一种内存参数的确定方法,其特征在于,包括:建立开源搜索服务器ES内存中索引文件占用的内存空间与所述ES内存中堆内存的内存参数之间的目标映射关系,所述内存参数表示为所述堆内存分配的内存空间;统计ES内存中当前索引文件占用的内存空间;基于所述当前索引文件占用的内存空间和所述映射关系确定所述ES内存中堆内存的内存参数。

【技术特征摘要】
1.一种内存参数的确定方法,其特征在于,包括:建立开源搜索服务器ES内存中索引文件占用的内存空间与所述ES内存中堆内存的内存参数之间的目标映射关系,所述内存参数表示为所述堆内存分配的内存空间;统计ES内存中当前索引文件占用的内存空间;基于所述当前索引文件占用的内存空间和所述映射关系确定所述ES内存中堆内存的内存参数。2.根据权利要求1所述内存参数的确定方法,其特征在于,所述建立ES内存中索引文件占用的内存空间与所述ES内存中堆内存的内存参数之间的映射关系,包括:采集样本数据,所述样本数据包括所述堆内存中数据占用不同内存空间和所述堆内存中数据占用不同内存空间时对应的索引文件占用的内存空间;基于采集的样本数据,构建所述索引文件占用的内存空间与所述堆内存中数据占用内存空间之间的内存空间数学模型;根据预设算法和所述内存空间数学模型,建立所述索引文件占用的内存空间与所述堆内存中数据占用内存空间之间的映射关系;将所述索引文件占用的内存空间与所述堆内存中数据占用内存空间之间的映射关系,确定为所述目标映射关系。3.根据权利要求2所述内存参数的确定方法,其特征在于,所述内存空间数学模型K,包括:K=K51+K52+K53=K51+C0+C1×S1+C2+K53,其中,K表示所述堆内存中数据占用内存空间,K51表示所述堆内存中新生代数据占用的内存空间,K52表示所述堆内存中老年代数据占用的内存空间,K53表示所述堆内存中永久代数据占用的内存空间,C0表示已知常量参数,C1表示未知常量参数,S1表示所述索引文件占用的内存空间,C2表示未知常量参数。4.根据权利要求2或3所述内存参数的确定方法,其特征在于,所述根据预设算法和所述内存空间数学模型确定所述索引文件占用的内存空间与所述堆内存中数据占用内存空间之间的映射关系,包括:基于预设线性回归算法和所述数学模型确定所述索引文件占用的内存空间与所述堆内存中数据占用内存空间之间的映射关系;所述预设线性回归算法中的损失函数J为如下公式:其中,n表示采集所述样本数据的个数;xi表示采集的样本数据中第i个所述堆内存中数据占用内存空间,f(xi)表示当所述堆内存中数据占用内存空间为xi时,基于所述内存空间数学模型计算出的索引文件占用的内存空间,ymax表示在采集的样本数据中,所述堆内存中数据占用内存空间为xi时对应的索引文件占用的内存空间的最大值。5.根据权利要求1所述内存参数的确定方法,其特征在于,所述统计ES内存中当前索引文件占用的内存空间,包括:设置统计ES内存中当前索引文件占用的内存空间的预设周期;统计在当前预设周期内所述索引文件占用的内存空间的变化量;基于前一个预设周期统计的所述索引文件占用的内存空间和所述变化量确定当前预设周期的当前索引文件占用的内存空间。6.一种内存参数的确定装置,其特征在于,包括:建立单元,用于建立开源搜索服务器ES内存中索引文件占用的内存空间与所述ES内存中堆内存的内存参数之间的目标映射关系,所述内存参数表示为所述堆内存分配的内存空间;...

【专利技术属性】
技术研发人员:张琳易剑光
申请(专利权)人:中国移动通信集团河北有限公司中国移动通信集团公司
类型:发明
国别省市:河北,13

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

1