1. 程式人生 > 其它 >jvm 常用引數

jvm 常用引數

JDK版本:8

JVM常用引數
-Xms 初始堆記憶體大小(包括年輕代和年老代)
-Xmx 最大堆記憶體大小(包括年輕代和年老代,建議和-Xms配置成一樣)
-Xmn 年輕代堆記憶體大小
-XX:MetaspaceSize 初始元空間記憶體大小(個人認為不需要配置,因為用不了這麼多)
-XX:MaxMetaspaceSize 最大元空間記憶體大小(個人認為不需要配置,因為用不了這麼多)

-XX:+UseConcMarkSweepGC 設定年老代使用CMS垃圾回收器(JDK8預設使用Parallel Scavenge + Parallel Old進行垃圾回收,如果想使用CMS垃圾回收器,需要新增此配置)
-XX:+UseCMSInitiatingOccupancyOnly 開啟<觸發回收的閾值>屬性
-XX:CMSInitiatingOccupancyFraction 設定觸發回收的閾值(個人認為不需要配置,因為JVM佔用的記憶體是程式啟動時就分配好的,所以沒必要留餘地,用滿了會觸發GC)
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses 減少Full GC STW時長
-XX:+CMSClassUnloadingEnabled 開啟CMS垃圾回收器對永久代類元資料的回收
-XX:+ParallelRefProcEnabled 開啟併發處理Reference物件
-XX:+CMSScavengeBeforeRemark 在標記前觸發一次young gc

-verbose:class 列印JVM載入類的資訊(只有類的全限定名和所在jar包名)
-XX:+HeapDumpOnOutOfMemoryError oom時自動生成dump檔案**(重要)**
-XX:ErrorFile=/data/logs/hs_err_pid%p.log error日誌檔案儲存路徑
-Xloggc:/dev/shm/gc/gc.log GC日誌檔案儲存路徑
-XX:HeapDumpPath=/data/logs/ dump檔案儲存路徑
-XX:+PrintGCDetails 列印GC詳細資訊
-XX:+PrintGCDateStamps 列印GC
-XX:+PrintClassHistogramBeforeFullGC full gc前列印類直方圖
-XX:+PrintClassHistogramAfterFullGC full gc後列印類直方圖
-XX:+PrintCommandLineFlags 列印自動化引數
-XX:+PrintGCApplicationConcurrentTime 列印兩個安全點之間應用程式執行的時間
-XX:+PrintGCApplicationStoppedTime 列印兩個安全點之間應用程式停止的時間
-XX:+PrintTenuringDistribution 列印物件歲數
-XX:+PrintHeapAtGC 每次gc後列印堆資訊