JVM参数优化

背景

JVM server模式默认使用GC回收器是Parallel Scavenge,这是一个吞吐量优先的回收器,FULL GC时间过长,影响响应。另外默认的JVM参数在针对特定场景可以有优化的空间。

 

参数调优

Xss

栈大小,默认一个线程的栈为1M。减少栈容量(比如512K)来换取更多的线程,可以有效解决内存溢出。

UseG1GC

这是JDK8最新款商用垃圾收集器,新生代和老年代都能使用,垃圾收集器原理和分类请参考:https://segmentfault.com/a/1190000004233812

 

MaxGCPauseMillis

最大GC停顿时间,这是个软目标,JVM将尽可能(但不保证)停顿小于这个时间,由于场景是要求低时延,所以这个值调的比较小(100ms)

 

AlwaysPreTouch

这个参数比加,JAVA进程启动的时候,虽然我们可以为JVM指定合适的内存大小,但是这些内存操作系统并没有真正的分配给JVM,而是等JVM访问这些内存的时候,才真正分配,这样会造成以下问题。 
1、GC的时候,新生代的对象要晋升到老年代的时候,需要内存,这个时候操作系统才真正分配内存,这样就会加大young gc的停顿时间; 
2、可能存在内存碎片的问题。


MaxTenuringThreshold

默认情况下,当新生代执行了15次young gc后,如果还有对象存活在Survivor区中,那么就可以直接将这些对象晋升到老年代,但是由于新生代使用copy算法,如果Survivor区存活的对象太久的话,Survivor区存活的对象就越多,这个就会影响copy算法的性能,使得young gc停顿的时间加长,建议设置成6。
 

 

 

参考链接:

https://blog.csdn.net/linsongbin1/article/details/55049477

http://calvin1978.blogcn.com/articles/jvmoption-7.html

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值