之前对JVM优化后,tomcat只能坚持一天,到了下午5点30左右,年老代上升特别快,CMS回收速率远小于年老代的增长速率,不到30分钟年老代就达到了极限,然后Full GC,然后 stop the world。看来之前的优化还存在问题。
翻阅了一些资料后,又开始继续优化。
这次的优化有如下几点:
- 设置SurvivorRatio的比例,由原来的1G改为731M。
- 去掉DisableExplicitGC参数
- 增加ExplicitGCInvokesConcurrent参数。
- 设置MaxTenuringThreshold=30
这是具体的修改前后对比,左边是修改前,右边是修改后。
主要修改是去掉了DisableExplicitGC,增加ExplicitGCInvokesConcurrent参数。
通过VisualVM查看,发现年老代就算没达到70%也在进行CMS回收:
查看gc.log可看到CMS相关的操作:
图片显示不全,后面一部分是remark的时间,单独截图如下:
可以看到remark时间还是挺短的。
先写到这,再跟踪一段时间看看实际情况如何。