第十章 常用的JVM參數記錄


GC

  • -XX:+PrintGC   打印GC日志
  • -XX:+PrintGCDetails   打印詳細的GC日志
  • -Xloggc:/var/gc.log   將GC日志打印在根目錄的var文件夾下的gc.log文件中

class

  • -verbose:class   打印類加載和卸載信息

堆內存

  • -Xmx2048m   最大堆內存
  • -Xms2048m   最小堆內存
  • -Xmn512m   新生代內存
  • -XX:SurvivorRatio   值為eden/from=eden/to
  • -XX:+HeapDumpOnOutOfMemoryError   在內存溢出時導出整個堆信息
  • -XX:HeapDumpPath=/var/heap.dump   指定導出堆的存放路徑

方法區

  • -XX:PermSize=50m  方法區大小
  • -XX:MaxPermSize=50m   方法區最大大小

Metaspace

  • -XX:MaxMetaspaceSize  指定元空間的大小,默認情況下,只受限於系統內存大小

  • -Xss1m

直接內存

  • -XX:MaxDirectMemorySize   最大可用直接內存,默認最大值為-Xmx,直接內存使用量達到該值時,觸發垃圾回收

垃圾回收器

  • -XX:UseSerialGC   使用serial/serial old垃圾回收器
  • -XX:PrintGCApplicationStoppedTime:查看STW時間
  • -XX:UseParNewGC   使用parNew/serial old
  • -XX:ParallelGCThreads   parNew的GC線程數

Parallel

  • -XX:+UseParallelGC   使用Parallel Scavenge/serial Old  //TODO
  • -XX:+UseParallelOldGC   使用Parallel Scavenge/Parallel Old
  • -XX:GCTimeRatio:直接設置吞吐量大小,假設設為19,則允許的最大GC時間占總時間的1/(1+19),默認值為99,即1/(1+99)
  • -XX:MaxGCPauseMillis:最大GC停頓時間,該參數並非越小越好
  • -XX:+UseAdaptiveSizePolicy:開啟該參數,-Xmn/-XX:SurvivorRatio/-XX:PretenureSizeThreshold這些參數就不起作用了,虛擬機會自動收集監控信息,動態調整這些參數以提供最合適的的停頓時間或者最大的吞吐量(GC自適應調節策略),而我們需要設置的就是-Xmx,-XX:+UseParallelOldGC或-XX:GCTimeRatio兩個參數就好(當然-Xms也指定上與-Xmx相同就好)

CMS

  • -XX:+UseConcMarkSweepGC   使用parNew/CMS
  • -XX:CMSInitiatingOccupancyFraction   指定當年老代空間滿了多少后進行垃圾回收。默認68,即68%
  • -XX:+UseCMSCompactAtFullCollection   (默認是開啟的)在CMS收集器頂不住要進行FullGC時開啟內存碎片整理過程,該過程需要STW
  • -XX:CMSFullGCsBeforeCompaction   指定多少次FullGC后才進行整理
  • -XX:ParallelCMSThreads   指定CMS回收線程的數量,默認為:(CPU數量+3)/4
  • -XX:+CMSPermGenSweepingEnabled與-XX:+CMSClassUnloadingEnabled   使用CMS進行方法區的回收

G1

  • -XX:+UseG1GC   使用G1

對象進入年老代

  • -XX:MaxTenuringThreshold=15   復制過15次后
  • -XX:PretenureSizeThreshold=1000   大於1000字節的對象直接進入年老代

JIT

  • -XX:CounterHalfLifeTime   半衰周期
  • -XX:CompileThreshold   默認server模式是10000,即在半衰周期內方法調用次數達到10000次,將該方法編譯為機器碼
  • -XX:-UseCounterDecay   關閉上述機制,即半衰周期的無窮大
  • -XX:OnStackReplacePercent   用於計算循環體執行的次數,server模式下通過該值算出來的回邊數是10700,即循環體執行10700次時便以為機器碼   


免責聲明!

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



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