问题描述
前几天早上出现一后台项目无法登陆的情况,排查发现新生代和老年代都占用100%,FullGC次数大概有100多次,最终出现OOM。
重启Tomcat后,至13点,FullGC的次数达到31次。
排查过程
- 通过对Java堆进行分析,发现数据量较大的实例类型为char[],其中最大的一个char[]实例大小为
127MB
,对其内容进行分析,发现与某接口的方法有关。 - 进一步分析发现,该接口在某一参数的情况下,就会产生这种大对象。同时这个是一个局部变量。
- 检查JVM配置如下:
-server -Xrs -Xmx5120m -Xms1536m -Xmn512m -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled -