jvm 参数说明


-server :  jvm启用server模式,默认是client模式,server模式是经过优化的,启动会比client模式要慢,服务器一般启用server模式,简单测试可以就用client模式。

-Xms                                                   -- 设置堆内存初始大小,

-Xmx                                                   -- 设置堆内存最大值,一般与-Xms相同。

-Xmn(-XX:NewSize)                      -- 设置新生代

-XX:MaxNewSize                                --新生代最大size

 

-XX:NewRatio                                     --  老生代和新生代的比例

-XX:SurvivorRatio                               --

eden/survivor 比例,默认为8

-XX:PermSize 

-XX:MaxPermSize        --  持久代size

-XX:ThreadStackSize(-Xss)                 --

Thread Stack Size

-XX:MaxTenuringThreshold              -- 设置对象在新生代中存活的次数,如果达到这个次数,对象就会进入old gen

-XX:PretenureSizeThreshold              -- 设置超过指定大小的大对象直接分配在旧生代中


-XX:MaxDirectMemorySize=256m          -- 设置最大堆外内存


-XX:+UseConcMarkSweepGC             -- 旧生代和持久代 并发GC,新生代并行GC

-XX:+UseParNewGC  

-XX:+CMSParallelRemarkEnabled

-XX:+CMSScavengeBeforeRemark              强制Hostspot vm在进入cms remark之前新进行一次minor gc, 通过减少引用老年代空间的新生代对象数目,将remark工作量减少到最少。

-XX:+UseCMSCompactAtFullCollection      在FULL GC的时候, 对年老代的压缩

-XX:CMSFullGCsBeforeCompaction=5        多少次后进行内存压缩

-XX:CMSInitiatingOccupancyFraction=80   老生代达到80%时触发fullgc,默认是92

-XX:+CMSPermGenSweepingEnabled  -XX:+CMSClassUnloadingEnabled 为了避免Perm区满引起的长时间的full gc,建议开启CMS回收Perm区选项

-XX:CMSInitiatingPermOccupancyFraction=70


注意:如果同时配置了-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80和-XX:+CMSPermGenSweepingEnabled  -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingPermOccupancyFraction=70 ,不管是老生代还是Perm区达到了GC条件,都会触发一次Full GC, 并且会同时回收老生代和Perm区

          


-Xloggc:/var/log/webapps/gc.log                  -- gc log

-XX:+PrintGCTimeStamps

-XX:+PrintGCDateStamps            “千万不要使用,会导致非常高的IO WAIT”  这个观点有待验证,因为配置这个有的时候也没有问题                     

-XX:+PrintGCDetails 

-XX:+PrintGCApplicationStoppedTime      “会打印出非常多的日志,尽量不要使用”    这个观点有待验证,因为配置这个有的时候也没有问题 



-XX:+DisableExplicitGC                           禁止使用System.gc(),System.gc()是一次stop-the-world gc,影响很大, 但使用这个参数可能也会带来堆外内存溢出的风险

-XX:+ExplicitGCInvokesConcurrent        当使用System.gc()时,使用并发gc,而不是stop-the-world gc,同时也去除了堆外内存溢出的风险

-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses 


-Dsun.rmi.dgc.{server|client}.gcInterval=3600000      单位:ms,   (RMI  分布式GC(DGC))


-XX:ParallelGCThreads: 年轻代的并行收集线程数默认是(cpu <= 8) ? cpu : 3 + ((cpu * 5) / 8),如果你希望降低这个线程数,可以通过-XX:ParallelGCThreads= N 来调整

-XX:ParallelCMSThreads:CMS默认启动的回收线程数目是 (ParallelGCThreads + 3)/4) ,如果你需要明确设定,可以通过-XX:ParallelCMSThreads=20来设定,其中ParallelGCThreads是年轻代的并行收集线程数


 附:

oracle 官网 jvm options

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值