GC日誌文件配置併發
-Xloggc:./logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M性能
不當心忘記配置gc日誌文件大小切割,長此以往,gc log文件很大,在gc日誌中可能會出現 user time小,sys time小,可是real time很大,是由於io寫gc文件去了spa
PermSize :永久代大小 ,例如:-XX:PermSize=256m (在jdk1.8中,沒有PermSize概念,稱之爲元空間,因此這個配置在1.8會報錯;只有 HotSpot 小於1.8纔有 「PermGen space」)線程
元空間的本質和永久代相似,都是對JVM規範中方法區的實現。不過元空間與永久代之間最大的區別在於:元空間並不在虛擬機中,而是使用本地內存。所以,默認狀況下,元空間的大小僅受本地內存限制日誌
CMSParallelRemarkEnabled:下降標記停頓對象
CMSScavengeBeforeRemark:強制remark以前開始一次minor gc,減小remark的暫停時間,可是在 remark以後也將當即開始又一次minor gc內存
ParallelRefProcEnabled:若是應用有不少的Reference or finalizable objects,那麼可使用- XX:+ParallelRefProcEnabled來減小durationci
UseCMSInitiatingOccupancyOnly:指定HotSpot VM老是使用-XX:CMSInitiatingOccupancyFraction的值做爲old的空間使用率限制來啓動CMS垃圾回收。若是沒有使用-XX:+UseCMSInitiatingOccupancyOnly,那麼HotSpot VM只是利用這個值來啓動第一次CMS垃圾回收,後面都是使用HotSpot VM自動計算出來的值rem
CMSInitiatingOccupancyFraction:這個值指定了CMS垃圾回收時old代的空間佔用率該是什麼值。舉例說 明,若是你但願old代佔用率是65%的時候,啓動CMS垃圾回收,你能夠設置-XX:CMSInitiatingOccupancyFraction=65。另一個能夠同時使用的選項是get
UseConcMarkSweepGC:使用cms內存收集
UseParNewGC:設置年輕代爲並行收集,可與CMS收集同時使用,JDK5.0以上,JVM會根據系統配置自行設置,因此無需再設置此值
CMSInitiatingPermOccupancyFraction: 這個參數的功能和-XX:CMSInitiatingOccupancyFraction很像,他指的是啓動CMS週期的permanent代的佔用率。這個參數一樣須要和-XX:+CMSClassUnloadingEnabled配合使用。若是你想一直使用-XX:CMSInitiatingPermOccupancyFraction的值做爲啓動CMS週期的條件,你必需要指定另一個選項:-XX:+UseCMSInitiatingOccupancyOnly
CMSMaxAbortablePrecleanTime:設置preclean步驟的超時時間,單位爲毫秒,preclean爲cms gc其中一個步驟
ConcGCThreads:(早期JVM版本也叫-XX:ParallelCMSThreads)定義併發CMS過程運行時的線程數
MaxTenuringThreshold:晉升到老年代的對象的年齡(這個參數在jdk1.8中只能配置0-15)
NewRatio:年輕代(包括Eden和兩個Survivor區)與年老代的比值(除去持久代),-XX:NewRatio=4表示年輕代與年老代所佔比值爲1:4,年輕代佔整個堆棧的1/5
Xms=Xmx而且設置了Xmn的狀況下,該參數不須要進行設置。
ParallelGCThreads:並行收集器的線程數,此值最好配置與處理器數目相等
PretenureSizeThreshold:對象超過多大是直接在舊生代分配,-XX:PretenureSizeThreshold只對串行回收器和ParNew有效,對ParallGC無效。默認該值爲0,即不指定最大的晉升大小,一切由運行狀況決定
SurvivorRatio:eden和survior大小比例
TargetSurvivorRatio:設定倖存區的目標使用率
DisableExplicitGC :增長了-XX:+DisableExplicitGC,這個參數做用是禁止代碼中顯示調用GC,若是加上了這個JVM啓動參數,那麼代碼中調用System.gc()沒有任何效果,至關因而沒有這行代碼同樣
-Xnoclassgc:關閉CLASS的垃圾回收功能,就是虛擬機加載的類,即使是不使用,沒有實例也不會回收。若是一個類20分鐘尚未使用,虛擬機會卸載這個類。若是這個類再次使用,虛擬機會從新加載這個類,因爲虛擬機加載類包含了IO和內存分配的操做,所以加載時會對性能有所影響。對於通常應用,這個參數對性能影響不大
-XX:+UseCMSCompactAtFullCollection:使用併發收集器時,開啓對年老代的壓縮.
-XX:CMSFullGCsBeforeCompaction=0:上面配置開啓的狀況下,這裏設置多少次Full GC後,對年老代進行壓縮
-XX:+CMSClassUnloadingEnabled:這個參數表示在使用CMS垃圾回收機制的時候是否啓用類卸載功能。默認這個是設置爲不啓用的
-XX:+CMSParallelRemarkEnabled:爲了減小第二次暫停的時間,開啓並行remark: -XX:+CMSParallelRemarkEnabled。若是remark仍是過長的話