Jvm常见参数及配置

Jvm常见参数
  • -Xms2048m,初始堆大小,建议<物理内存的1/4,默认值为物理内存的1/64(1/64太小,建议1/4)

  • -Xmx2048m,最大堆大小,建议与-Xms保持一致,默认值为物理内存的1/4
    (为什么保持一致:初始值1G,最大2G,当内存用了1G的时候,还没到使用上限,可以进行扩容,扩容会进行内存的重新分配、计算,造成扩容期间性能下降)

  • -Xmn512m,新生代大小,建议不超过堆内存的1/2,通常在 1/4 - 1/2 之间 (老年代大小为:最大堆大小 - 新生代大小)

  • -Xss1024k,线程堆栈大小,建议1024k (建议512 - 1024k)

  • -XX:PermSize=256m,永久代初始值,默认值为物理内存的1/64 (够用即可,JDK8中已移除,用Metaspace代替)

  • -XX:MaxPermSize=256m,永久代最大值,默认值为物理内存的1/4 (够用即可,JDK8中已移除,用Metaspace代替)

  • -XX:MetaspaceSize=64m 配置元空间初始值和最大值参数

  • -XX:MaxMetaspaceSize=64m 配置元空间初始值和最大值参数

  • -XX:SurvivorRatio=8:年轻带中Eden区和Survivor区的比例,默认为8:1,即Eden(8),From Space(1),ToSpace(1)

  • -XX:+UseConcMarkSweepGC:开启CMS垃圾回收器

设置JVM参数

修改 apache-tomcat-pinter/bin/catalina.sh

Linxu 系统:apache-tomcat-pinter/bin/catalina.sh

JAVA_OPTS="-Xms256m -Xmx256m -Xmn128m -Xss512k -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=64m -XX:+UseConcMarkSweepGC -Dcom.sun.management.jmxremote.port=8080 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=127.0.0.1"

Windwos系统:apache-tomcat-pinter/bin/catalina.bat

set "JAVA_OPTS=-Xms256m -Xmx256m -Xmn128m -Xss512k -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=64m -XX:+UseConcMarkSweepGC -Dcom.sun.management.jmxremote.port=8080 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=127.0.0.1"

控制台输入 jvisualvm 打开 jmv界面

原文地址:https://www.cnblogs.com/DeryKong/p/15620049.html