Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

Java线上故障排查方案 PDF 下载


分享到:
时间:2021-04-04 09:43来源:http://www.java1234.com 作者:转载  侵权举报
Java线上故障排查方案 PDF 下载
失效链接处理
Java线上故障排查方案 PDF 下载


本站整理下载:
提取码:1lfh 
 
 
相关截图:
 
主要内容:


⼀、前⾔
在软件开发过程中,排查和修复产线问题是每⼀位⼯程师都需要掌握的基本技能。但是在⽣产环境中,
程序代码、硬件、⽹络、协作软件等任⼀因素,都会引发意想不到的问题,所以排查产线问题⽐较困
难,所以问题的定位体现了⼀名⼯程师的基础能⼒,问题的解决则体现了⼯程师的技能素养。
以下从5个⽅⾯分享产线常⻅问题的排查⼿段。
1. Java常⻅线上问题总结
2. 如何定位问题
3. APM链路跟踪分析
4. 常⽤Linux分析命令
5. Arthas(阿尔萨斯)诊断命令
6. JVM问题定位命令
7. GC分析
⼆、Java常⻅线上问题总结
绝⼤多数Java线上问题从表象来看通常可以归纳为4个⽅⾯:CPU、内存、磁盘、⽹络。⽐如,应⽤上线
后突然CPU使⽤率99%、内存泄漏、STW时间过⻓,这些问题通常可以分为两⼤类:
系统异常 (CPU占⽤率过⾼、磁盘使⽤率100%、系统可⽤内存低等)
业务异常 (服务运⾏⼀段时间⾃动退出、服务间调⽤时间过⻓、多线程并发异常、死锁等)
三、如何定位问题
解决问题的第⼀步是定位问题,因为只有定位到了问题产⽣的原因,才能准确的抉择出解决⽅案,排查
⼿段⼀般包括以下⼏项,也可以将此理解为排查顺序:
1. 业务⽇志分析排查
2. APM分析排查
3. 外部环境排查
4. 应⽤服务排查
5. 云⼚商或运营商问题排查
3.1、业务⽇志分析排查
通常情况下,⼤部分错误信息都会在⽇志上有所体现,⽐如看看下⾯这段代码:
这段代码使⽤了 并发流 将数据加⼊到⼀个List中,再运⾏过程中,抛出了
ArrayIndexOutOfBoundsException ,具体异常栈信息如下:
通过⽇志可以看到出错的位置在 TaskServiceImpl.java ⽂件的第75⾏代码上,错误信息
是 java.lang.ArrayIndexOutOfBoundsException:163 ,这就是问题定位,整体描述出来就是: 在
TaskServiceImpl.java⽂件中第75⾏代码上出现了数组越界异常,引起异常的原因是在调⽤
java.util.ArrayList#add()⽅法时因为并发请求导致没有动态扩展数组容量 。
为什么我们能够直接描述出来是在调⽤ ArrayList#add() ⽅法时因为并发请求导致的没有动态扩展数
组容量呢?因为我们结合ArrayList的内部实现原理及动态扩容的特性,可以知道在单线程的情况下,代
码是串⾏执⾏,ArrayList内的数组都会是先扩容再插⼊,所以不会出现数组越界的错误,既然单线程不
会引起该错误,那⼀定就是多线程并发造成的了,解决⽅案就是给代码加锁或者由并发改串⾏,就是这
么简单,这就是技能素养的体现。
通过上⾯的分析,教育了我们:⼀定要在关键代码逻辑位置输出相关⽇志,尤其是在代码发⽣异常的时
候,定要将⽇志输出到⽂件中,只有这样,才更利于我们的排查。

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐