JVM常用启动参数


通用配置

-Xms4096m //最小堆内存

-Xmx4096m //最大堆内存

-Xmn2048m //年轻代大小

-XX:SurvivorRatio=8 //设置eden区和survivor区的内存大小比例,例如8就代表eden和两个survivor区的比例是8:1:1

-XX:MaxTenuringThreshold=15(5~15) //在新生代对象存活次数(经过Minor GC的次数)超过n后,就会晋升到老年代 

-XX:TargetSurvivorRatio=90 //在新生代的对象不一定要满足存活年龄达到MaxTenuringThreshold才能去老年代,当Survivor空间中相同年龄所有对象大小总和大于[Desired survivor size]时,年龄大于或等于该年龄的对象直接进入老年代。[Desired survivor size]=单个survivor大小*TargetSurvivorRatio百分比

-XX:PermSize=512M //永久代初始值

-XX:MaxPermSize=512m //永久代最大值

-Xss256k //每个线程的堆栈大小

-XX:+DisableExplicitGC //禁止显式调用System.gc()

CMS+ParNew收集器配置

-XX:+UseConcMarkSweepGC //使用CMS收集器

-XX:+UseParNewGC //使用ParNew收集器

-XX:ParallelGCThreads=20 //设置ParNew收集器的垃圾回收并行线程数

-XX:CMSInitiatingOccupancyFraction=85 //在老年代内存到达n%的时候开始CMS回收(因为CMS回收时用户线程并发,因此要提前开始回收)

日志配置

-verbose:gc //输出gc详情

-XX:+PrintGCDateStamps //GC发生的时间信息

-XX:+PrintGCDetails //显示GC详细信息

-Xloggc:logs/gc_`date '+%Y-%m-%d_%H:%M:%S'`.log //gc日志产生的路径

 

调试配置

-XX:+PrintTenuringDistribution  //输出在survivor空间里面有效的对象的岁数情况

-XX:+TraceClassLoading  //输出类加载信息

 

快速可用的组合配置(用于BS场景)

-Xms2048m -Xmx2048m -Xmn1024m -XX:PermSize=128m -XX:MaxPermSize=128m -Xss512k -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50

 

官方的vm参数页面,可以在里面直接查命令的解释:

http://www.oracle.com/technetwork/java/vmoptions-jsp-140102.html

 

posted @ 2017-01-11 15:15  叫我家宝  阅读(874)  评论(0编辑  收藏  举报