1. 程式人生 > >JVM日誌+垃圾蒐集器引數

JVM日誌+垃圾蒐集器引數

日誌關鍵字簡稱

 

PSYoungGen:PS是Parallel Scavenge收集器的縮寫,它配套的新生代稱為PSYoungGen,新生代又分化eden space、from space和to space這三部分。


ParOldGen:Parallel Scavenge收集器配套的老年代。


Metaspace:Parallel Scavenge收集器配套的永久代。


total & used:總的空間和用掉的空間。


DefNew(Default New Generation):Serial收集器的新生代,Serial收集器的老年代和永久代分別表示為"Tenured"、"Perm"。


垃圾蒐集器引數 

 

垃圾蒐集器選擇引數

名稱 說明 備註
UseSerialGC 開啟此引數使用serial & serial old蒐集器(client模式預設值)。  
UseParNewGC 開啟此引數使用ParNew & serial old蒐集器(不推薦)。  
UseConcMarkSweepGC 開啟此引數使用ParNew & CMS(serial old為替補)蒐集器。  
UseParallelGC 開啟此引數使用parallel scavenge & parallel old蒐集器(server模式預設值)。  
UseParallelOldGC 開啟此引數在年老代使用parallel old蒐集器(該引數在JDK1.5之後已無用)。  

JVM各個記憶體區域大小相關引數

名稱 說明 備註
Xms 堆的初始值。預設為實體記憶體的1/64,最大不超1G。  
Xmx 堆的最大值。預設為實體記憶體的1/4,最大不超1G。  
Xmn 新生代的大小。  
Xss 執行緒棧大小。  
PermSize 永久代初始大小。預設為實體記憶體的1/64,最大不超1G。  
MaxPermSize 永久代最大值。預設為實體記憶體的1/4,最大不超1G。  
NewRatio 新生代與年老代的比例。比如為3,則新生代佔堆的1/4,年老代佔3/4。  
SurvivorRatio 新生代中調整eden區與survivor區的比例,預設為8,即eden區為80%的大小,兩個survivor分別為10%的大小。  

垃圾蒐集器效能通用引數

名稱 說明 備註
PretenureSizeThreshold 晉升年老代的物件大小。預設為0,比如設為10M,則超過10M的物件將不在eden區分配,而直接進入年老代。  
MaxTenuringThreshold 晉升老年代的最大年齡。預設為15,比如設為10,則物件在10次普通GC後將會被放入年老代。  
DisableExplicitGC 禁用System.gc()。  

並行蒐集器引數

名稱 說明 備註
ParallelGCThreads 回收時開啟的執行緒數。預設與CPU個數相等。  
GCTimeRatio 設定系統的吞吐量。比如設為99,則GC時間比為1/1+99=1%,也就是要求吞吐量為99%。若無法滿足會縮小新生代大小。  
MaxGCPauseMillis 設定垃圾回收的最大停頓時間。若無法滿足設定值,則會優先縮小新生代大小,仍無法滿足的話則會犧牲吞吐量。  

併發蒐集器引數

名稱 說明 備註
CMSInitiatingOccupancyFraction 觸發CMS收集器的記憶體比例。比如60%的意思就是說,當記憶體達到60%,就會開始進行CMS併發收集。  
UseCMSCompactAtFullCollection 在每一次CMS收集器清理垃圾後送一次記憶體整理。  
CMSFullGCsBeforeCompaction 設定在幾次CMS垃圾收集後,觸發一次記憶體整理。