jvm参数优化

-Xms20m -Xmx20m -Xmn1m -XX:SurvivorRatio=2 -XX:+PrintGCDetails -XX:+UseSerialGC 

1.堆的初始值与堆内存最大值一定要保持一致,这样可以减少垃圾回收次数。

 -Xms :初始值   -Xmx:最大值 

2.设置新生代与老年代回收比例

新生代与老年代比例:1:3或1:4  (

-Xmn:新生代大小

-XX:SurvivorRatio:设置新生代中eden区和from/to空间的比例关系n/1

-XX:NewRatio=2:新生代与老年代的比例:1/2

3.Tomcat内存溢出

在catalina.sh修改JVM堆内存大小:

JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize-512m"

4.栈溢出 StackOverflowError

由于调用链层次超过最层次会发生,如:方法的递归调用(不是循环调用)

使用参数: -Xss5m设置递归调用深度

下一篇:jvm性能优化

代码交流 2021