===========================================================
-XX 開頭,這些是 JVM 的所有實現 都支持的 最常用的選項。
===========================================================
bool類型的開關選項(+開啟、-關閉)
-XX:+UseG1GC
使用G1GC
-XX:+PreserveFramePointer
使用FP寄存器來保存幀指針,而不是作為通用寄存器。解決了stack不完整的問題
-XX:+PrintGC
打印簡單GC日志
-XX:+PrintGCDetails
打印詳細GC日志
-XX:+PrintGCDateStamps
顯示每次GC的日期時間
-XX:+UseGCLogFileRotation
GC日志文件循環使用(比如,5個日志文件循環使用)
-XX:+HeapDumpOnOutOfMemoryError
可以讓JVM在出現內存溢出時候Dump出當前的內存轉儲快照
-XX:-OmitStackTraceInFastThrow
關閉棧異常信息快速拋出,從而記錄詳細的棧異常以便跟蹤。
各種配置的鍵值
-XX:MetaspaceSize=128m
元空間的初始大小,不斷擴容並首次超過這個值時會進行FGC,JVM會動態調整這個值
-XX:MaxMetaspaceSize=256m
元空間的最大值,超過最大值時會拋異常出來,加載的類越多,元空間使用的內存越多,元空間使用 Native Memory。
-XX:MaxGCPauseMillis=200
最大GC暫停時間,用戶可以設置這個值,G1GC盡量保證軟實時性
-XX:ParallelGCThreads=4
最大並行GC線程數
-XX:ConcGCThreads=4
最大並發GC線程數
-XX:MinHeapFreeRatio=30
指定空閑堆空間的最小百分比,如果實際空閑堆空間小於此值則需要對堆進行擴容 ,Xmx==Xms 的情況下無效
-XX:MaxHeapFreeRatio=50
指定空閑堆空間最大百分比 ,如果實際空閑堆空間大於此值則需要對對堆空間進行縮容,Xmx==Xms 的情況下無效
-XX:CICompilerCount=3
-XX:NumberOfGCLogFiles=5
GC日志文件數,可以設置循環使用
-XX:GCLogFileSize=32M
每個GC日志文件的默認大小
-XX:HeapDumpPath=/opt/logs/appid
堆轉儲快照文件保存的路徑
===========================================================
-X 開頭,這些選項是特定於 Java HotSpot 虛擬機的通用選項。
===========================================================
-Xmx6144m
JVM 最大堆內存
-Xms3686m
JVM 初始堆內存
-Xss256k
設置屬於每個線程的棧大小
-Xloggc:/opt/logs/appid/gc.log
GC日志文件保存的路徑
===========================================================
-D開頭,設置系統屬性值(屬性名稱=屬性值)
===========================================================
-Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Dport.http.server=8080
-Dport.shutdown.server=8081
-Ddocbase.server=/opt/app
-Dvdir.server=
-Djava.security.egd=file:/dev/./urandom
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=192.168.0.1
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8780
-Dcom.sun.management.jmxremote.rmi.port=8780
-Dcom.sun.management.jmxremote.local.only=false
-Djdk.tls.ephemeralDHKeySize=2048
-Dignore.endorsed.dirs=
-Dcatalina.base=/opt/tomcat
-Dcatalina.home=/opt/tomcat
-Djava.io.tmpdir=/opt/tomcat/temp
-Djava.util.concurrent.ForkJoinPool.common.parallelism=4