【技术实现步骤摘要】
代码故障定位方法、装置、设备及存储介质
本专利技术涉及通信
,尤其涉及一种代码故障定位方法、装置、设备及存储介质。
技术介绍
中国移动的第三代业务支撑系统已经完成了系统解耦、分布式改造等互联网架构建设,新的系统架构对应用处理能力、动态能力扩充等都带来了很大提升,但是同时也给系统运维带来了全新的挑战:(1)技术架构的转变、开源软件的引入、中心化改造,使第三代业务支撑系统架构复杂化,业务主机X86化及虚拟化技术的应用,使得主机的设备数量成倍数增加,系统规模庞大,使得当出现系统性能问题时,问题根源定位变得非常困难。(2)新应用架构下,在日常的运维中发现当前的应用版本对主机资源需求较高、资源消耗较多,但相应的,应用性能并没有得到明显提升,用户感知反而出现下降的情况。对于如何快速定位应用中可能的性能瓶颈,在现有的运维监控手段下,没有很好的解决办法。为保障业务支撑系统稳定运行,当发生故障前,可以提前对可能引起故障的性能指标进行监控,设定阀值并预警,达到相应阀值即告警通知相关人员进行处理。当发生故障时,可以快 ...
【技术保护点】
1.一种代码故障定位方法,包括:/n基于预设周期,定时扫描所有线程业务执行耗时;/n当所述所有线程业务执行耗时中存在任一线程业务执行耗时大于预设阈值时,则采集执行耗时大于预设阈值的线程业务调用堆栈信息;/n将所述执行耗时大于预设阈值的线程业务调用堆栈信息与业务跟踪信息进行绑定,得到跟踪业务采集到的信息;/n按照业务应用调用顺序,将所述跟踪业务采集到的信息组织为业务调用链;/n根据所述业务调用链,进行代码故障定位。/n
【技术特征摘要】
1.一种代码故障定位方法,包括:
基于预设周期,定时扫描所有线程业务执行耗时;
当所述所有线程业务执行耗时中存在任一线程业务执行耗时大于预设阈值时,则采集执行耗时大于预设阈值的线程业务调用堆栈信息;
将所述执行耗时大于预设阈值的线程业务调用堆栈信息与业务跟踪信息进行绑定,得到跟踪业务采集到的信息;
按照业务应用调用顺序,将所述跟踪业务采集到的信息组织为业务调用链;
根据所述业务调用链,进行代码故障定位。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当应用启动时,对多个关键信息类进行字节码注入,得到所述业务跟踪信息,其中,所述业务跟踪信息包括业务逻辑和监控代码;
对所述多个关键信息类进行业务耗时计时。
3.根据权利要求2所述的方法,其特征在于,所述多个关键信息类包括:
Java服务器页面Jsp、服务连接器Servlet、企业级的JavaBeanEJB、Java命名和目录接口JNDI、Java数据库连接JDBC。
4.根据权利要求3所述的方法,其特征在于,所述对所述多个关键信息类进行业务耗时计时,包括:
当发出业务请求后,对所述Jsp或Servlet进行业务耗时计时;
当业务调用所述EJB、JNDI或JDBC时,对所述EJB、JNDI或JDBC进行业务耗时计时;
其中,所述线程用于执行所述业务请求。
5.根据权利要求1所述的方法,其特征在于,所述根据所述业务调用链,进行代码故障定位,包括:
基于预设阈值,判断业务请求是否超时;
当判定所述业务请求超时,则保存业务请求超时的业务调用链;
根据所述业务请求超时的业务调用链,进行代码故障定位。
6.根据权利要求5所述的方法,其特征在于,所述根据所述业务请求超时的业务调用链,进行代码故障定位,包括:
通过请求调用栈信息,查看所述业务请求超时的业务调用链;
通过请求统一资源定位符URL,查看所述业务请求超时的业务调用链信息中的线程堆栈完整调用信息;
根据所述线程堆栈完整调用信息,进行代码故障定位。
7.根据权利要求1...
【专利技术属性】
技术研发人员:董宇,
申请(专利权)人:中国移动通信集团贵州有限公司,中国移动通信集团有限公司,
类型:发明
国别省市:贵州;52
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。