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界面