天天看点

[杂记]jvm相关问题

本文目前是收集有关于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

后续查阅资料,收集到的问题及解决方案均会在此进行记录。

日常所遇到的问题也会记录在此。