[发明专利]监测JVM Full GC事件的方法及系统有效
申请号: | 201810150708.3 | 申请日: | 2018-02-13 |
公开(公告)号: | CN108446162B | 公开(公告)日: | 2021-11-26 |
发明(设计)人: | 梅存兵 | 申请(专利权)人: | 南京途牛科技有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 南京众联专利代理有限公司 32206 | 代理人: | 叶涓涓 |
地址: | 210000 江苏省南京*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 监测 jvm full gc 事件 方法 系统 | ||
监测JVM Full GC事件的方法及系统,方法包括:采集JVM的日志,针对日志分析FGC发生的情况,当问题发生时,及时捕捉并在事前进行预警。系统包括:JVM日志采集模块、FGC分析模块、FGC预警模块。本发明通过对JVM Full GC事件进行了测量分析,评估了FGC导致JVM卡顿的可能性,当JVM稳定运行的可能性低于预期即卡顿的可能性超出可接受范围时,通过im、监控告警系统等渠道发送预警信息。由于变复盘时的故障原因分析为事前、事中的风险预警,本发明显著提升研发应对系统故障的效率和能力;由于具备风险预警,本发明降低了系统出故障的可能性,提升了系统稳定性,减少了损失,并进一步提升了客户满意度。
技术领域
本发明属于计算机监控技术领域,涉及监控JVM Full GC事件的方法及系统。
背景技术
Java语言正广泛的应用于各种软件系统中。使用Java语言开发项目时,需要先生成目标代码(字节码),再通过JVM(Java Virtual Machine)在各种设备上执行。JVM在管理内存时,会进行垃圾回收(GC),这当中的Full GC往往会直接造成系统卡顿。
目前对Full GC的分析与优化方法很多,通常的处理是在系统卡顿发生后,在故障复盘时通过故障原因分析发现Full GC存在问题,再分析Full GC的问题原因并对系统进行改进和优化。但当问题发生时不能及时捕捉到问题,更不可能事前进行预警。此外,目前对Full GC问题的描述几乎都是定性的,比如执行时间过长、执行频率过高,这些定性描述都依赖于故障是否发生来确定性质。即同样的执行时间,发生故障的就是执行时间过长、没发生故障的就是执行时间正常。这就缺乏定量描述,非常依赖于个人经验,无法普及和推广。
发明内容
为解决上述问题,本发明公开了监测JVM Full GC事件的方法及系统,通过采集日志,针对日志分析FGC发生的情况,当问题发生时,能及时捕捉并在事前进行预警。
为了达到上述目的,本发明提供如下技术方案:
监测JVMFull GC事件的方法,包括如下步骤:
步骤一,采集JVM的日志
实时采集JVM运行时的事件,采集信息包括FGC的触发时间(发生时刻)和执行时长;
步骤二,分析Full GC事件
定期提取步骤一采集到的信息,分析每一个实例的状况,计算a、b和P0,并根据P0的阈值发送预警信息;
具体包括如下步骤:
1.从JVM日志中逐个提取每个实例最近一次JVM启动后FGC的发生情况:
e)如果JVM启动后,FGC次数不足2,则暂时不分析该实例;
f)当启动后FGC次数超过2次时,进行以下处理:
当启动时间不足基本时间则取启动后的所有FGC事件;
当启动时间超过基本时间,但最近基本时间内FGC次数不足2次,则取最近2次FGC事件;
当启动时间超过基本时间,且最近基本时间内FGC次数不少于2次,则取最近基本时间内的所有FGC事件;
2.通过以下公式计算a,b
a=(FGC次数-1)/(最后一次FGC触发时间–最早一次FGC触发时间);
b=FGC次数/全部FGC事件的累计执行时间;
3.计算P0=b/(a+b)
4.判断当P0阈值,则发送预警信息;
步骤三,预警
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京途牛科技有限公司,未经南京途牛科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810150708.3/2.html,转载请声明来源钻瓜专利网。