文章目錄
- 1.JVM運作時資料區記憶體參數說明
- 2.JVM垃圾收集器參數總結
1.JVM運作時資料區記憶體參數說明
參數 | 選項 |
---|---|
-Xms | 堆的最小值 |
-Xmx | 堆的最大值(Xms和Xmx設定一緻,可以避免堆自動擴充) |
-Xmn | 堆中新生代大小 |
-XX:SurvivorRatio | 設定新生代中Eden和Survivor區域大小比例,如果設定為8,則Eden和兩個Survivor區比例為8:1:1 |
-Xss | 棧容量 |
-XX:PermSize | 非堆(方法區)區域初始記憶體大小 |
-XX:MaxPermSize | 非堆(方法區)區域配置設定的最大記憶體 |
-XX:MaxDirectMemorySize | 來指定最大直接記憶體 |
-XX:PretenureSizeThreshold | 設定大于這個值的對象直接在年老代配置設定 (此屬性隻對Serial與ParNew收集器有效) |
-XX:MaxTenuringThreshold | 控制對象經過多少次GC之後移動至年老代 |
-XX:+PrintTenuringDistribution | 列印對象年齡資訊 |
-XX:+HeapDumpOnOutOfMemoryError | 可以在記憶體溢出時,dump出目前記憶體堆轉儲為快照檔案以供事後進行分析 |
-XX:+PrintGCDetails | 在啟動腳本可以自動開啟-XX:+PrintGC , 如果在指令行使用jinfo開啟的話,不會自動開啟-XX:+PrintGC |
-XX:-HandlePromotionFailure | 關閉空間配置設定擔保 |
-XX:+HandlePromotionFailure | 打開空間配置設定擔保 |
2.JVM垃圾收集器參數總結
參數 | 描述 |
---|---|
UseSerialGC | 虛拟機運作在Client模式下的預設值,打開此開關後,使用Serial+Serial Old的收集器組合進行記憶體回收 |
UseParNewGC | 打開此開關後,使用ParNew+Serial Old的收集器組合進行記憶體回收 |
UseConcMarkSweepGC | 打開此開關後,使用ParNew+CMS+Serial Old的收集器組合進行記憶體回收。Serial Old收集器将作為CMS收集器出現Concurrent Mode Failure失敗後的後備收集器使用 |
UseParallelGC | 虛拟機運作在Server模式下的預設值,打開此開關後,使用Parallel Scavenge+Serial Old(PS MarkSweep)的收集器組合進行記憶體回收 |
UseParallelOldGC | 打開此開關後,使用Parallel Scavenge+Parallel Old的收集器組合進行記憶體回收 |
SurvivorRatio | 新生代中Eden區域與Survivor區域的容量比值,預設為8,代表Eden:Survivor=8:1 |
PretenureSizeThreshold | 直接晉升到老年代的對象大小,設定這個參數後,大于這個參數的對象将直接老年代配置設定 |
MaxTenuringThreshold | 晉升到老年代的對象年齡。每個對象在堅持過一次Minor GC之後,年齡就+1,當超過這個參數值時就進入老年代 |
UseAdaptiveSizePolicy | 動态調整java堆中各個區域的大小及進入老年代的年齡 |
HandlePromotionFailure | 是否允許配置設定擔保失敗,即老年代的剩餘空間不足以應付新生代的整個Eden和Survivor區的所有對象都存活的極端情況 |
ParallelGCThreads | 設定并行GC時進行記憶體回收的線程數 |
GCTimeRatio | GC時間占總時間的比率,預設值為99,即允許1%的GC時間。僅在使用Parallel Scavenge收集器時生效 |
MaxGCPauseMillis | 設定GC的最大停頓時間。僅在使用Parallel Scavenge收集器時生效 |
CMSInitiatingOccupancyFraction | 設定CMS收集器在老年代空間被使用多少後觸發垃圾收集。預設值為68%,僅在使用CMS收集器時生效 |
UseCMSCompactAtFullCollection | 設定CMS收集器在完成垃圾收集後是否要進行一次記憶體碎片整理。僅在使用CMS收集器時生效 |
CMSFullGCsBeforeCompaction | 設定CMS收集器在進行若幹次垃圾收集後在啟動一次記憶體碎片整理。僅在使用CMS收集器時生效 |