平時工作用過的JVM常用基本配置參數有哪些
-Xms
-Xmx
-Xmn
-Xms128m -Xmx4096m -Xss1024K -XX:MetaspaceSize=512m -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseSerialGC
分爲K-V設值類型和布爾類型:
K-V設值類型:
-
KV設值類型
公式:
-XX:屬性key=屬性值value
case:
-XX:MetaspaceSize=128m
-XX:MaxTenuringThreshold=15
-Xms----> -XX:InitialHeapSize
-Xmx----> -XX:MaxHeapSize
-
Boolean類型:
-
公式:
-XX+或者-某個屬性值
+表示開啓,-表示關閉是否打印GC收集細節 -XX:+PrintGCDetails 開啓 -XX:-PrintGCDetails 關閉
是否使用串行垃圾回收器:-XX:-UseSerialGC
具體參數:
-
-Xms
初始大小內存,默認爲物理內存1/64,等價於-XX:InitialHeapSize
-
-Xmx
最大分配內存,默認物理內存1/4,等價於-XX:MaxHeapSize
-
-Xss
設置單個線程棧的大小,默認542K~1024K ,等價於-XX:ThreadStackSize
-
-Xmn
設置年輕代的大小
-
-XX:MetaspaceSize
設置元空間大小
元空間的本質和永久代類似,都是對JVM規範中方法區的實現,不過元空間與永久代最大的區別在於:元空間並不在虛擬機中,而是在本地內存中。 因此,默認元空間的大小僅受本地內存限制
-
-XX:+PrintGCDetails
輸出詳細GC收集日誌信息
[名稱:GC前內存佔用->GC後內存佔用(該區內存總大小)]
-
-XX:SurvivorRatio
設置新生代中Eden和S0/S1空間的比例
默認-XX:SurvivorRatio=8,Eden:S0:S1=8:1:1
-
-XX:NewRatio
設置年輕代與老年代在堆結構的佔比
默認-XX:NewRatio=2 新生代在1,老年代2,年輕代佔整個堆的1/3
NewRatio值若爲k,則老年代佔比:新生代佔比 = k : 1
-
-XX:MaxTenuringThreshold
設置垃圾的最大年齡
默認-XX:MaxTenuringThreshold=15
如果設置爲0,年輕代對象不經過Survivor區,直接進入年老代。對於年老代比較多的應用,可以提高效率。如果將此值設置爲一個較大的值,則年輕代對象回在Survivor區進行多次複製,這樣可以增加對對象在年輕代的存活時間,增加在年輕代即被回收的概率。
-
-XX:+UseSerialGC
串行垃圾回收器
-
-XX:+UseParallelGC
並行垃圾回收器