公司后台一段时间老是挂掉,根据日志,发现是OOM的问题.从大的方面来讲,主要采取了两个步骤:
1.让GC日志跑起来,观察到马上进行FULLGC之前,执行命令进行DUMP命令:
jmap -dump:format=b,file=./alertdDump 430880..430880 是 alertd的pid..最后会生成一份文件,,该文件的大小就是该后台设置的内存最大的大小.
2.将本分生成的文件导入到MemoryAnalyzer分析器里面,选择leak模式:会生成一个分析的结果界面, 如下图:
最后,定位到了出问题的那一行代码,发现是执行了递归调用,其退出条件没有设置好,最终导致了问题.