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