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>

相关文章
相关标签/搜索