[发明专利]一种JVM内存泄露自动检测方法以及系统在审
申请号: | 201611018556.9 | 申请日: | 2016-11-11 |
公开(公告)号: | CN108073439A | 公开(公告)日: | 2018-05-25 |
发明(设计)人: | 郑先斌;熊凌云 | 申请(专利权)人: | 深圳业拓讯通信科技有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 深圳市顺天达专利商标代理有限公司 44217 | 代理人: | 郭伟刚 |
地址: | 518000 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存泄露 内存信息 内存 内存使用信息 管理对象 内存系统 自动检测 监听器 内存池管理 内存使用量 注册监听器 告警 对象设置 垃圾回收 人员系统 通知系统 外部连接 影响程序 指令调用 回收 次内存 触发 判定 分析 维护 | ||
一种JVM内存泄露自动检测方法以及系统,方法包括:S1、基于获取的内存池管理对象设置内存的回收使用量阈值,基于获取的内存系统管理对象注册监听器;S2、若JVM进行完垃圾回收后内存超过回收使用量阈值,则内存系统管理对象将当前内存信息通知给监听器;S3、监听器基于最大内存使用量上升次数和上一次内存使用量,对当前内存信息进行分析以判断是否存在内存泄露。本发明能够自动的获取到JVM内存使用信息,而且能够更加及时的在GC完成之后获取JVM的内存使用信息,得到准确的内存信息,不用进行外部连接或者指令调用,不影响程序正常运行;进一步地,在判定存在内存泄露时触发告警,从而提前通知系统维护人员系统可能存在内存问题,利于问题的尽早定位。
技术领域
本发明涉及计算机领域,尤其涉及一种JVM内存泄露自动检测方法以及系统。
背景技术
JVM(Java Virtual Machine,Java虚拟机)作为Java程序的执行环境,它有自己的一套内存管理机制,能够完成分配、回收内存。对于Java程序员来说,不需要过多的关心对象是如何在内存中保存和使用的,因为有垃圾收集(Garbage Collection,简称GC)机制的存在,保证了Java程序能够正常的运行。不过,即使经过测试的程序,也可能因为代码编写或者对象使用不当,导致JVM内存泄露或者内存溢出。还有可能因为JVM的内存配置不合理,无法满足程序运行的需要(例如大量并发的请求)导致内存不足,这种情况虽然不属于内存泄露,但是出现的问题是相同的,最后都会导致内存溢出。
实际的生产环境当中,都会给JVM分配较大的内存,同时也会对GC进行一定的配置优化,从而使得出现内存问题的时间被拉长和延后,通常需要一段时间(一到几个小时甚至几天、几个星期)才能发现明显的内存问题,对于这种不可预期的内存问题,如果不能够及时准确的判断出JVM是否出现内存泄露不能帮助维护人员尽早仅进行问题的定位,则会严重影响系统的正常运行。
现有监控JVM内存的途径主要有:使用JConsole监视和管理控制台,通过远程接口进行可视化的监视,或者通过jmap、jstat等JAVA自带的指令查询当前的JVM内存状况,根据多次内存的变化情况,判断是否出现了内存泄露。现有技术方案的主要缺点是:
1)、需要人工去操作,并且需要人工进行不间断的监控,观察JVM GC后的结果,自动化程度低。
2)、所获取到的JVM内存信息,都不是刚进行完GC(垃圾收集)后的JVM内存状况,对于内存的变化,可能存在误判的情况。
3)、需要建立连接或通过指令调用正在运行的JVM,不够安全便捷,同时对于一些实时性要求高、请求并发量大的系统,实时进行对象数量的统计,会严重影响系统的正常运行。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种JVM内存泄露自动检测方法以及系统。
本发明解决其技术问题所采用的技术方案是:构造一种JVM内存泄露自动检测方法,包括以下步骤:
S1、基于获取的内存池管理对象设置内存的回收使用量阈值,基于获取的内存系统管理对象注册监听器以监听内存使用量变化;
S2、若JVM进行完垃圾回收后内存超过设置的所述回收使用量阈值,则内存系统管理对象将当前内存信息通知给注册的监听器;
S3、监听器基于最大内存使用量上升次数和上一次内存使用量,对当前内存信息进行分析以判断是否存在内存泄露。
在本发明所述的JVM内存泄露自动检测方法中,所述步骤S3中,监听器在被通知触发时,如果计算得到当前内存信息超过上一次内存使用量的连续次数达到最大内存使用量上升次数,则判定存在内存泄露。
在本发明所述的JVM内存泄露自动检测方法中,所述步骤S3具体包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳业拓讯通信科技有限公司,未经深圳业拓讯通信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611018556.9/2.html,转载请声明来源钻瓜专利网。