博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JVM参数优化
阅读量:2382 次
发布时间:2019-05-10

本文共 676 字,大约阅读时间需要 2 分钟。

背景

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

 

参数调优

Xss

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

UseG1GC

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

 

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。

 

 

 

参考链接:

 

 

转载地址:http://obyab.baihongyu.com/

你可能感兴趣的文章
screen 命令和 shell 脚本基础
查看>>
网络应用的托管设置以及Nginx反向代理
查看>>
微信小程序互相跳转的参数传递
查看>>
BFS · 广度优先搜索
查看>>
Union Find 和一道谷歌面试题
查看>>
2019 江苏省高考作文 | 美国多样性
查看>>
luowho 团队的 Git 实用手册
查看>>
blog里竟加进啦广告!
查看>>
google主叶more菜单弹出啦
查看>>
今天看到唯啦
查看>>
QQ推广员(推广代码)
查看>>
gmail里的mp3播放器代码
查看>>
QB无缘无故丢失!
查看>>
进gmail不失去连接的办法之一
查看>>
工作辞啦!
查看>>
韩国游戏注册常用语言对译
查看>>
利用GUEST帐号创建一个管理员帐号(windows XP sp1,sp2 )
查看>>
xuri网吧开机脚本
查看>>
简单做路由配置(MikroTik RouterOS 2.8.26 )
查看>>
网络桌面,要是这样的话未来普通用户上网其不是不用硬盘啦!(未来普通人用的操作系统雏形)
查看>>