JVM調優GC常用參數


JVM的命令行參數參考:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html

HotSpot參數分類

標准: - 開頭,所有的HotSpot都支持
非標准:-X 開頭,特定版本HotSpot支持特定命令
不穩定:-XX 開頭,下個版本可能取消
java -version
java -X

GC常用參數

  • -Xmn -Xms -Xmx -Xss
    年輕代 最小堆 最大堆 棧空間
  • -XX:+UseTLAB
    使用TLAB,默認打開
  • -XX:+PrintTLAB
    打印TLAB的使用情況
  • -XX:TLABSize
    設置TLAB大小
  • -XX:+DisableExplictGC
    System.gc()不管用 ,FGC
  • -XX:+PrintGC
  • -XX:+PrintGCDetails
  • -XX:+PrintHeapAtGC
  • -XX:+PrintGCTimeStamps
  • -XX:+PrintGCApplicationConcurrentTime (低)
    打印應用程序時間
  • -XX:+PrintGCApplicationStoppedTime (低)
    打印暫停時長
  • -XX:+PrintReferenceGC (重要性低)
    記錄回收了多少種不同引用類型的引用
  • -verbose:class
    類加載詳細過程
  • -XX:+PrintVMOptions
  • -XX:+PrintFlagsFinal -XX:+PrintFlagsInitial
    必須會用
  • -Xloggc:opt/log/gc.log
  • -XX:MaxTenuringThreshold
    升代年齡,最大值15
  • 鎖自旋次數 -XX:PreBlockSpin 熱點代碼檢測參數-XX:CompileThreshold 逃逸分析 標量替換 ...
    這些不建議設置

Parallel常用參數

  • -XX:SurvivorRatio
  • -XX:PreTenureSizeThreshold
    大對象到底多大
  • -XX:MaxTenuringThreshold
  • -XX:+ParallelGCThreads
    並行收集器的線程數,同樣適用於CMS,一般設為和CPU核數相同
  • -XX:+UseAdaptiveSizePolicy
    自動選擇各區大小比例

CMS常用參數

  • -XX:+UseConcMarkSweepGC
  • -XX:ParallelCMSThreads
    CMS線程數量
  • -XX:CMSInitiatingOccupancyFraction
    使用多少比例的老年代后開始CMS收集,默認是68%(近似值),如果頻繁發生SerialOld卡頓,應該調小,(頻繁CMS回收)
  • -XX:+UseCMSCompactAtFullCollection
    在FGC時進行壓縮
  • -XX:CMSFullGCsBeforeCompaction
    多少次FGC之后進行壓縮
  • -XX:+CMSClassUnloadingEnabled
  • -XX:CMSInitiatingPermOccupancyFraction
    達到什么比例時進行Perm回收
  • GCTimeRatio
    設置GC時間占用程序運行時間的百分比
  • -XX:MaxGCPauseMillis
    停頓時間,是一個建議時間,GC會嘗試用各種手段達到這個時間,比如減小年輕代

G1常用參數

  • -XX:+UseG1GC
  • -XX:MaxGCPauseMillis
    建議值,G1會嘗試調整Young區的塊數來達到這個值
  • -XX:GCPauseIntervalMillis
    GC的間隔時間
  • -XX:+G1HeapRegionSize
    分區大小,建議逐漸增大該值,1 2 4 8 16 32。
    隨着size增加,垃圾的存活時間更長,GC間隔更長,但每次GC的時間也會更長
    ZGC做了改進(動態區塊大小)
  • G1NewSizePercent
    新生代最小比例,默認為5%
  • G1MaxNewSizePercent
    新生代最大比例,默認為60%
  • GCTimeRatio
    GC時間建議比例,G1會根據這個值調整堆空間
  • ConcGCThreads
    線程數量
  • InitiatingHeapOccupancyPercent
    啟動G1的堆空間占用比例


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM