JVM调优主要就是调整下面两个指标
停顿时间:垃圾收集器做垃圾回收中断应用执行的时间。-XX:MaxGCPauseMillis
吞吐量:垃圾收集的时间和总时间的占比:1/(1+n),吞吐量为1-1/(1+n), -XX:GCTimeRatio = n
GC调优步骤
-
打印GC日志
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:./gc.log
Tomcat则直接加在JAVA_OPTS变量里
-
分析日志得到关键性指标
-
分析GC原因,调优JVM参数
JVM常用参数:
- -Xms:堆的最小值;(默认值为内存的1/64)
- -Xmx:堆的最大值;(默认值为内存的1/4)
- -Xmn:新生代的大小;
- -XX:NewSize;新生代最小值;
- -XX:MaxNewSize:新生代最大值;
方法区/永久代/元空间
-
jdk1.7及以前:-XX:PermSize;-XX:MaxPermSize;
-
jdk1.8以后