多语言展示
当前在线:1188今日阅读:176今日分享:34

如何分析应用系统崩溃不响应现象

本篇分享小编如何处理应用系统崩溃不响应现象时,如何去分析解决。
工具/原料
1

linux监控命令使用

2

文本编辑工具

方法/步骤
1

导致应用出现崩溃,无响应的原因有很多,我们要逐一排查,分析;一般引起应用无响应,崩溃的原因有很多,常见的有资源耗尽,内存泄露,死锁等原因;

2

在应用系统发生崩溃或无响应时做如下处理首先监控获取操作系统的资源消耗情况,应用程序的服务器一般都会选择linux系统上,我们就以linux系统做介绍:在发生故障时,使用top命令 监控操作系统内存和cpu的使用情况,如果内存或cup使用率都达到的最大值,就说明很不正常,这时我们就得需要抓取一下消耗使用内存和cpu的类去分析下是哪块代码引起的,使用jdk自带工具jvisualvm.exe抓取cpu热点即可。

3

在使用top命令监控在应用发生故障时的cpu和内存都正常的情况继续进行下一步分析,监控应用程序的垃圾收集情况是否正常,如果垃圾收集现象有异常或回收不掉,就需要分析下应用服务器的垃圾收集策略配置是否合理,内存堆空间分配是否合理,再者需要抓取dump文件,检查下是存在内存泄露的情况;监控gc回收情况:jstat -gcutil 3670(pid) 2s获取dump文件:jmap -dump:format=b,file=aa.bin 3670

4

在监控程序gc正常没问题后,再进行下一步的分析,抓取应用出现故障时的线程堆栈,分析是否存在死锁现象使用命令:jstack -l pid

5

通过上面几个步骤下来的应用故障基本上就会被定位到了,如果定位不到就需要进一步监控cpu热点了,可以使用jvisualvm.exe工具抓取应用故障发生时的cpu热点,查找应用出现故障时在做什么工作

6

一般在应用出现因内存溢出或Java虚拟机崩溃引起的崩溃时,都会在应用服务器的相关目录下生成响应的.hprof文件 然后分析该文件查找原因

推荐信息