JVM參數說明

轉載於https://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html文章html

 

JVM參數說明java

-Xms:初始堆大小  默認值=物理內存的1/64,當空餘的堆內存小於40%時,JVM就會增大堆直到-Xmx設置值jvm

-Xmx:最大堆大小 默認值=無聊內存的1/4,  當空餘堆內存大於70%時,JVM會將堆大小減小直到-Xms設置值性能

-Xmn:年輕代  整個堆大小=年輕代大小+年老代大小+持久代大小。 增大年輕代後,將會減小年老代大小,此測試

值對系統性能影響較大。Sun官方推薦配置爲整個堆大小的3/8spa

-XX:NewSize: 年輕代操作系統

-XX:MaxNewSize: 年輕代最大值線程

-XX:PermSize  持久代初始值日誌

-XX:MaxPermSize  持久代最大值server

-Xss  每一個線程的堆棧大小   JDK5之後每一個線程的堆棧大小爲1M,以前是256k。 在相同物理內存下,減少這個

值能生成更多的線程,但操做系統對一個進程中的線程數也是有限制的,3000-5000。通常小的應用,若是棧不

是很深,應該128k夠用的,大的應用建議使用256k。這個值對性能影響比較大,需先測試

-XX:NewRatio 年輕代(包括Eden和兩個Survivor)與年老代的比值  --XX:NewRatio=4表示年輕代與年老代所佔

比值爲1:4,年輕代佔整個堆棧的1/5 。 當Xms=Xmx並設置了Xmn的狀況下,該參數能夠不設置

-XX:SurvivorRatio  Eden區與Survivor區的大小壁紙 設置爲8,表示兩個Survivor區與一個Eden區的比值爲2:8

一個Survivor區佔整個年輕代的1/10

-XX:LargePageSizeInBytes  內存頁的大小不可設置過大,會影響到perm的大小  通常值爲128M

-XX:MaxTenuringThreshold  垃圾最大年齡。若是設爲0的話,則年輕代對象不通過Survivor區,直接進入年老

代,對於年老代比較多的應用,則年輕代對象會在Survivor區進行屢次複製,這會增長對象在年輕代的存活時間

增長年輕代被回收的機率,該參數只有在串行GC纔有效

=========================

 

-server:必定要做爲第一個參數,在多個CPU時性能佳 

 

-Xms:java Heap初始大小。 默認是物理內存的1/64。

 

-Xmx:java heap最大值。建議均設爲物理內存的一半。不可超過物理內存。

 

-XX:PermSize:設定內存的永久保存區初始大小,缺省值爲64M。(我用visualvm.exe查看的)

 

-XX:MaxPermSize:設定內存的永久保存區最大大小,缺省值爲64M。(我用visualvm.exe查看的)

 

-XX:SurvivorRatio=2  :生還者池的大小,默認是2,若是垃圾回收變成了瓶頸,您能夠嘗試定製生成池設置

 

-XX:NewSize: 新生成的池的初始大小。 缺省值爲2M。

 

-XX:MaxNewSize: 新生成的池的最大大小。  缺省值爲32M。

 

若是 JVM 的堆大小大於 1GB,則應該使用值:-XX:newSize=640m -XX:MaxNewSize=640m -XX:SurvivorRatio=16,或者將堆的總大小的 50% 到 60% 分配給新生成的池。調大新對象區,減小Full GC次

 

+XX:AggressiveHeap 會使得 Xms沒有意義。這個參數讓jvm忽略Xmx參數,瘋狂地吃完一個G物理內存,再吃盡一個G的swap。 

 

-Xss:每一個線程的Stack大小,「-Xss 15120」 這使得JBoss每增長一個線程(thread)就會當即消耗15M內存,而最佳值應該是128K,默認值好像是512k. 

 

-verbose:gc 現實垃圾收集信息 

 

-Xloggc:gc.log 指定垃圾收集日誌文件 

 

-Xmn:young generation的heap大小,通常設置爲Xmx的三、4分之一 

 

-XX:+UseParNewGC :縮短minor收集的時間 

 

-XX:+UseConcMarkSweepGC :縮短major收集的時間 此選項在Heap Size 比較大並且Major收集時間較長的狀況下使用更合適。

 

-XX:userParNewGC 可用來設置並行收集【多CPU】

 

-XX:ParallelGCThreads 可用來增長並行度【多CPU】

 

-XX:UseParallelGC 設置後可使用並行清除收集器【多CPU】

 

 

 

-Xmx4000M -Xms4000M -Xmn600M -XX:PermSize=500M -XX:MaxPermSize=500M -Xss256K -XX:+DisableExplicitGC -XX:SurvivorRatio=1 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:LargePageSizeInBytes=128M -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:log/gc.log

 

<jvm-arg>-Xms2048m</jvm-arg> <jvm-arg>-Xmx2048m</jvm-arg> <jvm-arg>-Xmn512m</jvm-arg> <jvm-arg>-Xss1m</jvm-arg> <jvm-arg>-XX:PermSize=256M</jvm-arg> <jvm-arg>-XX:MaxPermSize=256M</jvm-arg> <jvm-arg>-XX:SurvivorRatio=8</jvm-arg> <jvm-arg>-XX:MaxTenuringThreshold=15</jvm-arg> <jvm-arg>-XX:+UseParallelOldGC</jvm-arg> <jvm-arg>-XX:GCTimeRatio=19</jvm-arg> <jvm-arg>-XX:+PrintGCDetails</jvm-arg> <jvm-arg>-XX:+PrintGCTimeStamps</jvm-arg>

相關文章
相關標籤/搜索