本文目前是收集有关于JVM的调优经验、问题解决。
promotion failed: 转向Full GC,网站停顿时间较长
原因一:
救助空间不够(from+to),救助空间的对象还不应该移动到老年代,但年轻代有很多对象需要放入救助空间。
解决方法:
加大救助空间,六十四位系统下: 设置-XX:SurvivorRatio=1 ,并把MaxTenuringThreshold去掉
原因二:
年老代没有足够的空间接纳来自年轻代的对象。
解决方法:
设置CMSInitiatingOccupancyFraction
关于设置该参数的值,博文中分析:基本上满足(Xmx-Xmn)*(100- CMSInitiatingOccupancyFraction)/100>=Xmn
就不会出现promotion failed。
参考博文:Java:jvm调优经验
经常Full GC,但老年代中使用的不多,年轻代GC正常,元空间一直递增的情况:
原因一:
是不是使用了反射等手段,导致元空间加载的类太多,导致元空间爆满,触发full gc。
解决方法:
-XX:+TraceClassLoading和-XX:+TraceClassUnloading这两个参数,看下类加载和卸载的情况,确定下是不是有哪些类反复被生成和加载,找到相应的类,然后跟踪到代码里,排除问题。
参考博文:-XX:+TraceClassLoading和-XX:+TraceClassUnloading
后续查阅资料,收集到的问题及解决方案均会在此进行记录。
日常所遇到的问题也会记录在此。