常用JVM參數


網上有很詳細的關於各種JVM參數說明,本篇只記錄很常用的幾個參數,為了方便以后自己查閱

 

1、JVM三種參數類型

  • 標准參數。如 -version、-help
  • X參數。如 -Xms、-Xmx
  • XX參數。如-XX:+PrintGC

 

2、XX參數數值類型

  • 布爾類型。如-XX:+PrintGCDetails,其中 +- 分別表示開啟/關閉某個屬性,PrintGCDetails表示打印GC詳情
  • KV設值類型。如-XX:NewSize=256M,設置年輕代空間大小為256M

 

3、常用參數

 X參數:

 

 XX參數: 

  • -XX:NewSize:設置年輕代最小空間大小
  • -XX:MaxNewSize:設置年輕代最大空間大小
  • -XX:PermSize:設置永久代最小空間大小
  • -XX:MaxPermSize:設置永久代最大空間大小
  • -XX:NewRatio:設置年輕代和老年代的比值。默認值-XX:NewRatio=2,表示年輕代與老年代比值為1:2,年輕代占整個堆大小的1/3
  • -XX:SurvivorRatio:設置年輕代中Eden區Survivor區的容量比值。默認值-XX:SurvivorRatio=8,表示Eden : Survivor0 : Survivor1 = 8 : 1 : 1

 

4、GC日志

在設置JVM參數的時候,可以設置GC打印日志參數:-XX:+PrintGCDetails。下面GC輸出日志信息:

日志含義如下:

GC:表示進行了一次Minor GC,即從年輕代空間(包括 Eden 和 Survivor 區域)回收內存

Allocation Failure:在年輕代中沒有足夠的空間能夠存儲新的數據

Full GC (Ergonomics):表示進行了一次Full GC,即清理整個堆空間(包含年輕代和老年代)

PSYoungGen: 1024K->1024K(1536K):垃圾回收器是Paralle Scavenge,年輕代區GC前->GC后該區域已使用量,后面的1536表示該區域總量

ParOldGen: 4032K->4032K(4096K):老年代區,GC前->GC后該區域已使用量,后面的4096表示該區域總量

5056K->5056K(5632K):GC前 -> GC后Java堆的使用量,后面的5632表示Java堆總量

Metaspace: 3117K->3117K(1056768K):JDK8中取消了永久代,新增了一個叫元空間(Metaspace)的區域,對應的還是JVM規范中的方法區(主要存放一些class和元數據的信息),該數據表示該區GC前后使用量

0.0214352 secs:暫停STW 時間,即GC的時間

Times: user=0.02 sys=0.01, real=0.02 secs:更為詳細的時間占比統計

 

 

參考地址:

http://www.yayihouse.com/yayishuwu/chapter/1615

 


免責聲明!

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



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