1. 程式人生 > >jvm參數及分析工具

jvm參數及分析工具

16px 標記清除 對象 標記 默認 ace 日誌 mil init

-Xmx4G 設置堆的最大內存大小為4GB,也可通過-XX:MaxHeapSize=4GB進行設置
-Xms256m 設置堆的初始內存大小為256兆,如果未設置此選項,則初始大小將設置為新生代和年老代分配的內存大小總和,也可通過-XX:InitialHeapSize=256m進行設置
-Xmn256m 設置新生代的初始內存大小和最大內存大小為256兆,也可通過-XX:NewSize=256m設置新生代初始內存大小、-XX:MaxNewSize=256m設置新生代最大內存大小
-Xss256k 設置每個線程的堆棧大小為256KB,也可通過-XX:ThreadStackSize=256k進行設置。默認值與運行環境有關,64位linux系統中默認值為1024KB
-XX:MetaspaceSize=256m

設置元空間擴容時觸發垃圾回收的閾值,即隨著Metaspace的不斷擴容,達到該值時觸發一次FGC。

Metaspace的初始容量一定是21807104(約20.8m)和MetaspaceSize及MaxMetaspaceSize設置的值無關,所以擴容區間是[20.8m, MaxMetaspaceSize)

-XX:MaxMetaspaceSize=256m 設置元空間的最大本機內存為256兆
-XX:NewRatio=1 設置年老代和新生代占用的內存空間的比值,即old/new=1,默認值是2
-XX:NewSize=256m 設置新生代的初始內存大小為256兆
-XX:SurvivorRatio=4 設置Eden區和Survivor大小比值,即Eden/Survivor=4,該設置表明每個Survivor區在新生代中占1/6的空間,該設置默認值為8
-XX:MaxTenuringThreshold=20 設置進入老年代的門檻,即對象在Survivor區之間拷貝了20次則將該對象復制到老年代
-XX:MaxNewSize=256m 設置新生代的最大內存大小為256兆
-XX:InitialHeapSize=256m 設置堆的初始內存大小為256兆
-XX:MaxHeapSize=4GB 設置堆的最大內存大小為4GB
-XX:PermSize=256m
設置分配給永久代的空間(以字節為單位),如果超出則會觸發垃圾回收。此選項在JDK 8中已棄用,並被該-XX:MetaspaceSize選項取代(原因是jdk1.8已經將永久代移到了本地內存中,稱為MetaSpace)
-XX:MaxPermSize=256m 設置最大永久生成空間大小(以字節為單位)。此選項在JDK 8中已棄用,並由該-XX:MaxMetaspaceSize選項取代。
-XX:MaxGCPauseMillis=500 設置一次GC過程大的暫停時間,單位是毫秒
-XX:+UseSerialGC 使用串行垃圾收集器,默認情況下,禁用此選項,並根據計算機的配置和JVM的類型自動選擇收集器
-XX:+UseParallelGC 開啟並行垃圾收集器(也稱為吞吐量收集器),對新生代有效,老年代依然是串行垃圾收集器
-XX:+UseParNewGC 對新生代使用並行線程進行垃圾回收,設置-XX:+UseConcMarkSweepGC選項時會自動啟用該選項
-XX:+UseParallelOldGC 對老年代使用並行垃圾收集器,開啟此選項時-XX:+UseParallelGC會自動被開啟
-XX:+UseConcMarkSweepGC 開啟並發標記清除垃圾收集器,並自動開啟-XX:+UseParNewGC且無法禁用
-XX:ParallelGCThreads=2 設置新生代和老年代中並行垃圾收集器開啟的線程數,默認值是系統可用CPU的數量
-XX:+PrintGC 允許打印GC信息
-XX:+PrintGCDetails 允許打印GX詳細信息
-XX:+PrintGCDateStamps 允許打印GC日期戳
-XX:+PrintGCTimeStamps 允許打印GC時間戳
-Xloggc:filename gc日誌輸出到指定文件

oracle官方文檔表示,在以下配置的計算機上,默認情況下選擇吞吐量垃圾收集器;初始堆大小為1/64的物理內存,最大為1GB;最大堆大小為1/4物理內存,最大為1GB:
①.2個以上處理器
②.2GB以上的物理內存

分析工具

jmap -heap pid
查看指定java進程的jvm參數和當前堆內各個區的內存使用情況(pid表示進程id)
jstack pid
查看指定java進程的棧內日誌,主要用於分析線程的運行狀況
jstat -gc pid 1000
每隔一秒統計一次gc的回收情況

jvm參數及分析工具