背景:

个别机器:内存突然上升,cpu利用率升高。

解决过程

1. jmap dump整个内存镜像

2. 整个文件700多M,使用Jhat打不开

3. 换heapanalyzer,能打开,但没有分析出占用内存的情况,使用命令:java -Xmx4096m -jar ha39.jar

4.换成Mat eclipse插件,直接打开dump.bin文件(jvm 10g)。mat插件地址:http://download.eclipse.org/mat/1.6/update-site/

跟据mat分析今天上的dump文件,发现大对象是一个String的arraylist,string的内容像是日期,然后搜索整个工程,找出具体方法有一个while语句,在边界测试时会进入死循环,导致内存不断升高,最终heap out of memory。

 

posted on 2016-08-02 16:45  一天不进步,就是退步  阅读(579)  评论(0编辑  收藏  举报