[发明专利]一种程序故障的处理方法及相关装置在审
申请号: | 202111399108.9 | 申请日: | 2021-11-24 |
公开(公告)号: | CN113821415A | 公开(公告)日: | 2021-12-21 |
发明(设计)人: | 赵路;张益军;王金明 | 申请(专利权)人: | 飞狐信息技术(天津)有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F11/32;G06F11/34 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 韩丽波 |
地址: | 300280 天津市滨海新区天津经济开发区*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 故障 处理 方法 相关 装置 | ||
本申请公开了一种程序故障的处理方法及相关装置,获取当前设备的内存占用率、tomcat线程池使用率和垃圾收集器GC占用时长;响应于所述内存占用率、所述GC占用时长或所述tomcat线程池使用率中的至少一项达到预设阈值以上,生成所述当前设备的内存快照和线程快照。本申请中,基于设备的多个指标来对设备的故障情况进行实时监控,当某个指标达到发生故障的阈值时,则可以自动生成当前设备的内存快照和线程快照,便于管理人员及时发现故障、回溯故障,从而提高了程序故障的处理效率。
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种程序故障的处理方法及相关装置。
背景技术
Java服务在运行期间可能会因为各种原因导致服务处理缓慢、重启甚至不可用等。而通常出现这种情况时,普通的业务日志并不能帮助维护人员定位问题,这些问题通常由于死锁或死循环等原因导致。这时通常使用jmap和jstack命令来获取当前的jvm内存快照与线程快照,以分析定位问题原因。但是由于jmap和jstack只能获取当前快照,如果过了问题的出现时间,则无法溯源当时jvm情况。
因此,一种能够及时保存程序故障现场的方案亟待推出。
发明内容
本申请实施例提供了一种程序故障的处理方法及相关装置,用于提高程序故障的处理效率。
第一方面,本申请实施例提供了一种程序故障的处理方法,包括:
获取当前设备的内存占用率、tomcat线程池使用率和垃圾收集器(garbagecollection,GC)占用时长;
响应于所述内存占用率、所述GC占用时长或所述tomcat线程池使用率中的至少一项达到预设阈值以上,生成所述当前设备的内存快照和线程快照。
基于第一方面,一种可选的实施方式中,所述生成所述当前设备的内存快照和线程快照,包括:
通过jmap采集所述当前设备的内存快照;
通过jstack采集所述当前设备的线程快照。
基于第一方面,一种可选的实施方式中,所述生成所述当前设备的内存快照和线程快照之后,所述方法还包括:
向管理设备反馈故障消息,所述故障消息包括所述内存快照和所述线程快照。
基于第一方面,一种可选的实施方式中,所述tomcat线程池使用率是通过Micrometer函数所采集到的。
第二方面,本申请实施例提供了一种程序故障处理装置,其特征在于,包括:
获取单元,用于获取当前设备的内存占用率、tomcat线程池使用率和垃圾收集器GC占用时长;
生成单元,用于当所述内存占用率、所述GC占用时长或所述tomcat线程池使用率中的至少一项达到预设阈值以上时,生成所述当前设备的内存快照和线程快照。
基于第二方面,一种可选的实施方式中,所述生成单元具体用于:
通过jmap采集所述当前设备的内存快照;
通过jstack采集所述当前设备的线程快照。
基于第二方面,一种可选的实施方式中,所述程序故障处理装置还包括:
反馈单元,用于向管理设备反馈故障消息,所述故障消息包括所述内存快照和所述线程快照。
基于第二方面,一种可选的实施方式中,所述tomcat线程池使用率是通过Micrometer函数所采集到的。
第三方面,本发明实施例提供了一种计算机设备,包括存储器、通信接口及与所述存储器和通信接口耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行上述任一方面所述的程序故障的处理方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于飞狐信息技术(天津)有限公司,未经飞狐信息技术(天津)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111399108.9/2.html,转载请声明来源钻瓜专利网。