一种Java程序内存使用情况监控方法及装置制造方法及图纸

技术编号:28558410 阅读:24 留言:0更新日期:2021-05-25 17:52
本发明专利技术提供了一种Java程序内存使用情况监控方法及装置,可以应用于金融领域,方法包括:通过调用Java管理扩展接口实时获取Java内存中各区的指标数据,指标数据包括:内存使用量、内存使用最大值、垃圾回收次数和垃圾回收耗时;通过实时计算数据库对指标数据按照设定的时间单位进行聚合计算获得各区内存使用数据;根据各区内存使用数据与预设阀值的大小关系对各区内存使用情况进行实时预警。本申请提供的Java程序内存使用情况监控方法,对内存进行分区,然后针对每个分区,结合垃圾回收情况和内存占用情况对Java程序内存进行监控,实现了在不影响系统性能的情况下对内存进行精确监控的技术效果。

【技术实现步骤摘要】
一种Java程序内存使用情况监控方法及装置
本申请属于Java程序性能监控
,具体地讲,涉及一种Java程序内存使用情况监控方法及装置。
技术介绍
当前,Java虚拟机提供了一套垃圾回收机制,可以让Java开发者不必关心内存的分配和清理等工作。但是该套垃圾回收机制在实际运行中常常因为内存使用不当等原因使得Java虚拟机内存使用率不断升高,直到Java虚拟机内存溢出(OUTOFMEMORY,OOM)。Java虚拟机自身提供的内存监控工具,如JMAP、JSTACK、JPS等命令行工具,其原理都是当内存使用出问题时,通过远程连接到Java虚拟机进行通讯,这些内存监控工具的缺点在于:只适合在内存使用发生问题之后的排查阶段使用,不适合提前预警。而且,远程连接本身需要占用一定的系统资源,因此,不适合作为常规的监控工具。另外,当前针对Java内存的监控仅监控内存整体使用率数值,这样不易发现问题,因为Java虚拟机实际上将内存区分成了不同的区域,因此不能单纯依赖一个内存整体使用率数值来表征不同内存区域的情况。
技术实现思路
本申请提供了一种Java程序内存使用情况监控方法及装置,以至少解决现有的Java内存监控工具需要远程连接,而远程连接不仅占用系统资源而且只能对Java虚拟机的整体内存进行监控,无法实现监控精细化的问题。根据本申请的一个方面,提供了一种Java程序内存使用情况监控方法,包括:通过调用Java管理扩展接口实时获取Java内存中各区的指标数据,指标数据包括:内存使用量、内存使用最大值、垃圾回收次数和垃圾回收耗时;通过实时计算数据库对指标数据按照设定的时间单位进行聚合计算获得各区内存使用数据;根据各区内存使用数据与预设阀值的大小关系对各区内存使用情况进行实时预警。在一实施例中,Java程序内存使用情况监控方法还包括:根据Java内存中垃圾回收算法的类型对Java内存进行分区处理。在一实施例中,当指标数据为内存使用量时,通过实时计算数据库对指标数据按照设定的时间单位进行聚合计算获得各区内存使用数据,包括:获取预设时间段内每一时刻的内存使用量;根据内存使用量计算预设时间段内的内存平均使用量。在一实施例中,当指标数据为内存使用最大值时,通过实时计算数据库对指标数据按照设定的时间单位进行聚合计算获得各区内存使用数据,包括:获取各时段的内存使用最大值;通过比较各时段的内存使用最大值确定内存最大瞬时使用值。在一实施例中,当指标数据为垃圾回收次数时,通过实时计算数据库对指标数据按照设定的时间单位进行聚合计算获得各区内存使用数据,包括:获取预设时间段内的垃圾回收次数;根据垃圾回收次数确定预设时间段内的垃圾回收频率。在一实施例中,当指标数据为垃圾回收耗时时,通过实时计算数据库对指标数据按照设定的时间单位进行聚合计算获得各区内存使用数据,包括:获取预设时间段内每次垃圾回收耗时;根据每次垃圾回收耗时确定预设时间段内的垃圾回收平均耗时。根据本申请的另一个方面,还提供了一种Java程序内存使用情况监控装置,包括:指标数据获取单元,用于通过调用Java管理扩展接口实时获取Java内存中各区的指标数据,指标数据包括:内存使用量、内存使用最大值、垃圾回收次数和垃圾回收耗时;聚合计算单元,用于通过实时计算数据库对指标数据按照设定的时间单位进行聚合计算获得各区内存使用数据;实时预警单元,用于根据各区内存使用数据与预设阀值的大小关系对各区内存使用情况进行实时预警。在一实施例中,Java程序内存使用情况监控装置还包括:内存分区处理单元,用于根据Java内存中垃圾回收算法的类型对Java内存进行分区处理。在一实施例中,当指标数据为内存使用量时,聚合计算单元包括:瞬时内存使用量获取模块,用于获取预设时间段内每一时刻的内存使用量;内存平均使用量获取模块,用于根据内存使用量计算预设时间段内的内存平均使用量。在一实施例中,当指标数据为内存使用最大值时,聚合计算单元包括:内存使用最大值获取模块,用于获取各时段的内存使用最大值;最大瞬时使用值获取模块,用于通过比较各时段的内存使用最大值确定内存最大瞬时使用值。在一实施例中,当指标数据为垃圾回收次数时,聚合计算单元包括:垃圾回收次数获取模块,用于获取预设时间段内的垃圾回收次数;垃圾回收频率确定模块,用于根据垃圾回收次数确定预设时间段内的垃圾回收频率。在一实施例中,当指标数据为垃圾回收耗时时,聚合计算单元包括:垃圾回收耗时获取模块,用于获取预设时间段内每次垃圾回收耗时;平均耗时求取模块,用于根据每次垃圾回收耗时确定预设时间段内的垃圾回收平均耗时。本申请提供的Java程序内存使用情况监控方法,对内存进行分区,然后针对每个分区,结合垃圾回收情况和内存占用情况对Java程序内存进行监控,实现了在不影响系统性能的情况下对内存进行精确监控的技术效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请提供的一种Java程序内存使用情况监控方法流程图。图2为本申请实施例中当指标数据为内存使用量时对其进行聚合计算的方法流程图。图3为本申请实施例中当指标数据为内存使用最大值时对其进行聚合计算的方法流程图。图4为本申请实施例中当指标数据为垃圾回收次数时对其进行聚合计算的方法流程图。图5为本申请实施例中当指标数据为垃圾回收耗时时对其进行聚合计算的方法流程图。图6为本申请提供的一种Java程序内存使用情况监控装置结构框图。图7为本申请实施例中当指标数据为内存使用量时聚合计算单元的结构框图。图8为本申请实施例中当指标数据为内存使用最大值时聚合计算单元的结构框图。图9为本申请实施例中当指标数据为垃圾回收次数时聚合计算单元的结构框图。图10为本申请实施例中当指标数据为垃圾回收耗时时聚合计算单元的结构框图。图11为本申请实施例中一种电子设备的具体实施方式。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本申请的具体实施方式可以应用于金融领域,或除金融领域外的其他领域,本申请不以此为限。一般情况下,Java内存可以分成程序计数器、虚拟机栈、本地房发展、堆以及方法区五个部分,堆内存最常出现内存溢出本文档来自技高网...

【技术保护点】
1.一种Java程序内存使用情况监控方法,其特征在于,包括:/n实时获取Java内存中各区的指标数据,所述指标数据包括:内存使用量、内存使用最大值、垃圾回收次数和垃圾回收耗时;/n通过实时计算数据库对所述指标数据按照设定的时间单位进行聚合计算获得各区内存使用数据;/n根据所述各区内存使用数据与预设阀值的大小关系对各区内存使用情况进行实时预警。/n

【技术特征摘要】
1.一种Java程序内存使用情况监控方法,其特征在于,包括:
实时获取Java内存中各区的指标数据,所述指标数据包括:内存使用量、内存使用最大值、垃圾回收次数和垃圾回收耗时;
通过实时计算数据库对所述指标数据按照设定的时间单位进行聚合计算获得各区内存使用数据;
根据所述各区内存使用数据与预设阀值的大小关系对各区内存使用情况进行实时预警。


2.根据权利要求1所述的Java程序内存使用情况监控方法,其特征在于,还包括:
根据Java内存中垃圾回收算法的类型对Java内存进行分区处理。


3.根据权利要求2所述的Java程序内存使用情况监控方法,其特征在于,当所述指标数据为内存使用量时,所述通过实时计算数据库对所述指标数据按照设定的时间单位进行聚合计算获得各区内存使用数据,包括:
获取预设时间段内每一时刻的内存使用量;
根据所述内存使用量计算预设时间段内的内存平均使用量。


4.根据权利要求2所述的Java程序内存使用情况监控方法,其特征在于,当所述指标数据为内存使用最大值时,所述通过实时计算数据库对所述指标数据按照设定的时间单位进行聚合计算获得各区内存使用数据,包括:
获取各时段的内存使用最大值;
通过比较各时段的内存使用最大值确定内存最大瞬时使用值。


5.根据权利要求2所述的Java程序内存使用情况监控方法,其特征在于,当所述指标数据为垃圾回收次数时,所述通过实时计算数据库对所述指标数据按照设定的时间单位进行聚合计算获得各区内存使用数据,包括:
获取预设时间段内的垃圾回收次数;
根据所述垃圾回收次数确定预设时间段内的垃圾回收频率。


6.根据权利要求2所述的Java程序内存使用情况监控方法,其特征在于,当所述指标数据为垃圾回收耗时时,所述通过实时计算数据库对所述指标数据按照设定的时间单位进行聚合计算获得各区内存使用数据,包括:
获取预设时间段内每次垃圾回收耗时;
根据每次垃圾回收耗时确定预设时间段内的垃圾回收平均耗时。


7.一种Java程序内存使用情况监控装置,其特征在于,包括:
指标数据获取单元,用于实时获取Java内存中各区的指标数据,所述指标数据包括:内存使用量、内存使用最大值、垃圾回收次数和垃圾...

【专利技术属性】
技术研发人员:刘慕雨王泽洋黄镜澄唐月标
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

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

1