JVM 參數

JVM 參數

 

-X :非標準選項

-XX:非穩定選項

 

在選項名前用 “+” 或 “-” 表示開啓或關閉特定的選項,例:

    -XX:+UseCompressedOops:表示開啓 壓縮指針

    -XX:-UseCompressedOops:表示關閉 壓縮指針

 

1.堆分配參數

-Xmn10M:設置新生代區域大小爲10M

-XX:NewSize=2M:設置新生代初始大小爲2M

-XX:MaxNewSize=2M:設置新生代最大值爲2M

- - ##(如果以上三個同時設置了,誰在後面誰生效。生產環境使用-Xmn即可,避免抖動)

-Xms128M:設置java程序啓動時堆內存128M(默認爲物理內存1/64,且小於1G)

-Xmx256M:設置最大堆內存256M,超出後會出現 OutOfMemoryError(默認爲物理內存1/64,且小於1G)

- - ##(生產環境 -Xms 與 -Xmx 最好一樣,避免抖動)
-Xss1M:設置線程棧的大小 1M(默認1M)

- - ##  -XX:ThreadStackSize,-Xss 設置在後面,以-Xss爲準;  -XX:ThreadStackSize設置在後面,主線程以 -Xss爲準,其他線程以  -XX:ThreadStackSize爲準

-XX:MinHeapFreeRatio=40:設置堆空間最小空閒比例(默認40)(當-Xmx與-Xms相等時,該配置無效)

-XX:MaxHeapFreeRatio=70:設置堆空間最大空閒比例(默認70)(當-Xmx與-Xms相等時,該配置無效)

-XX:NewRatio=2:設置年老代與年輕代的比例爲2:1

-XX:SurvivorRatio=8:設置年輕代中eden區與survivor區的比例爲8:1

-XX:PermSize=64M:設置持久代初始大小

-XX:MaxPermSize=128M:設置持久代最大值

-XX:TargetSurvivorRatio=90:當survivor區達到90%時,將對象送入老年代

-XX:+UseTLAB:在年輕代空間中使用本地線程分配緩衝區(TLAB),默認開啓

-XX:TLABSize=512k:設置TLAB大小爲512k

-XX:+UseCompressedOops:使用壓縮指針,默認開啓

2.垃圾回收器相關

串行回收器相關

-XX:+UseSerialGC:在年輕代和年老代使用串行回收器

-XX:SurvivorRatio=8:設置eden區大小和survivor區大小的比例爲8(默認8)

-XX:+PetenureSizeThreshold=1M:對象直接進入老年代的閾值(只對串行收集器有效)

-XX:MaxTenuringThreshold=15:對象進入老年代的年齡(默認15)

並行回收器相關

-XX:+UseParallelGC:使用並行垃圾回收收集器

-XX:+UseParNewGC:在新生代使用並行回收器

-XX:+UseParallelOldGC:年老代使用並行回收收集器

-XX:ParallelGCThreads=4:設置用於垃圾回收的線程數爲4(通常與CPU數量相等)

-XX:MaxGCPauseMills:設置最大垃圾收集停頓時間(收集器工作時會調整其他參數大小,儘可能將停頓控制在指定時間內)

-XX:GCTimeRatio:設置吞吐量大小(取值 0 - 100)

-XX:+UseAdaptiveSizePolicy:打開自適應GC策略(該摸式下,各項參數都會被自動調整)

CMS回收器相關

-XX:+UseConcMarkSweepGC:年輕代使用並行收集器,年老代使用CMS+串行收集器

-XX:+CMSInitiatingOccupancyFraction:設置CMS收集器在年老代空間被使用多少後觸發(默認60%)

-XX:+UseFullGCsBeforeCompaction:設定進行多少次CMS垃圾回收後,進行一次內存壓縮

-XX:+CMSClassUnloadingEnabled:允許對類元數據進行回收

-XX:+CMSParallelRemarkEnabled:啓用並行重標記

-XX:+CMSInitatingPermOccupancyFraction:當永久區佔用率達到該值後,啓動CMS回收(前提-XX:+CMSClassUnloadingEnabled已激活)

-XX:+UseCMSInitatingOccupancyOnly:只在達到閾值的時候,才進行CMS回收

XX:+CMSIncrementalMode:使用增量模式,適合單CPU

G1回收器相關

-XX:+UseG1GC:使用G1回收器

-XX:+UnlockExperimentalVMOptions:允許使用實驗性參數

-XX:+MaxGCPauseMills:設置最大垃圾收集停頓時間

-XX:+GCPauseIntervalMills:設置最停頓時間間隔

其他參數

-XX:+DisableExplicitGC:禁止顯示GC

 

2.GC日誌

-XX:+PrintGCDetails:打印GC信息

-XX:+PrintGCTimeStamps :打印每次GC的時間戳(現在距離啓動的時間長度)

-XX:+PrintGCDateStamps :打印GC日期

-XX:+PrintHeapAtGC:每次GC時,打印堆信息

-Xloggc:/usr/local/tomcat/logs/gc.$$.log :GC日誌存放的位置

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章