天天看點

jdk8以上G1垃圾回收器的配置參數

# 最大堆大小

-Xmx2048m    

# 初始堆大小                    

-Xms2048m     

# 年輕代大小                  

-Xmn1024m 

#每個線程棧大小,JDK5.0以後每個線程堆棧大小為1M。

-Xss512k

# Eden區與Survivor區的大小比值,設定為8,則兩個Survivor區與一個Eden區的比值為2:8,一個Survivor區占整個年輕代的1/10                       

-XX:SurvivorRatio=8     

# 使用 G1 (Garbage First) 垃圾收集器   

-XX:+UseG1GC

#設定垃圾收集暫停時間最大值名額,預設值:4294967295 。這是一個軟目标,Java虛拟機将盡最大努力實作它

-XX:MaxGCPauseMillis=200

# 提升年老代的最大臨界值(tenuring threshold). 預設值為 15[每次GC,增加1歲,到15歲如果還要存活,放入Old區]             

# -XX:MaxTenuringThreshold=14   

     

# 設定垃圾收集器在并行階段使用的線程數[一般設定為本機CPU線程數相等,即本機同時可以處理的個數,設定過大也沒有用] 

-XX:ParallelGCThreads=8              

# 并發垃圾收集器使用的線程數量

-XX:ConcGCThreads=8   

# 設定堆記憶體保留為假天花闆的總量,以降低提升失敗的可能性. 預設值是 10.

# -XX:G1ReservePercent=10   

# 使用G1時Java堆會被分為大小統一的的區(region)。此參數可以指定每個heap區的大小. 預設值将根據 heap size 算出最優解. 最小值為 1Mb, 最大值為 32Mb

# -XX:G1HeapRegionSize=n   

# 指定整個堆的使用率達到多少時, 執行一次并發标記周期, 預設45, 過大會導緻并發标記周期遲遲不能啟動, 增加FullGC的可能, 過小會導緻GC頻繁, 會導緻應用程式性能有所下降

# -XX:InitiatingHeapOccpancyPercent=n  

# 設定Matespace記憶體大小的參數

-XX:MetaspaceSize=256m

-XX:MaxMetaspaceSize=512M

###################  以下為輔助功能     ###################        

# 禁止在啟動期間顯式調用System.gc()

-XX:+DisableExplicitGC

# OOM時導出堆到檔案

-XX:+HeapDumpOnOutOfMemoryError

 # 導出OOM的路徑    

-XX:HeapDumpPath=d:/a.dump

 #  列印GC詳細資訊         

-XX:+PrintGCDetails        

# 列印CG發生的時間戳      

-XX:+PrintGCTimeStamps      

#  每一次GC前和GC後,都列印堆資訊        

-XX:+PrintHeapAtGC             

# 監控類的加載    

-XX:+TraceClassLoading    

#  按下Ctrl+Break後,列印類的資訊           

-XX:+PrintClassHistogram