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

2025-11-24 00:20:50

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文件 然后分析该文件查找原因

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢