现象:测试小伙伴找到我,说接口调用无反应,一直在转圈,两个多小时了,第一反应:**,会用吗。自己去操作,确实这样。。。。看服务器日志,提示java.lang.OutOfMemoryError: Java heap space,妥了,这是妥妥的代码有问题啊,脸真疼,查找吧!
查找原因:
1、查看gc状态:jstat -gcutil pid 1000
400多次gc。。。,老年代和元数据区都都95%以上,感觉是在full gc吧,等等,等他处理完应该就好了,一年过去了,一点没降。。
2、dump堆内存:jmap -dump:live,format=b,file=/var/log/dump.log pid
3、dump完后用visual VM查看、
很明显了,char占了1.4个多g。。。。总共才分了两个g
到实例数里一看,嚯,好家伙,传进来了一堆描述信息,太多了,内存都给占了
好了,找需求吧,是限制前端选择,还是多加分类选择,or加大jvm堆内存?