JVM参数配置推荐

JVM配置建议

参数

备注/参数释义

规范

JVM GC方法

ParallelGC:1.8默认,高吞吐量,响应时间不敏感

CMS:响应优先,堆内存8G以下优先选择

G1:响应优先,堆内存8G及以上选择

C端应用:8G及以上选择G1,8G以下选择CMS

B端应用:推荐使用ParallelGC

Xmx

堆的最大值

机器配置小于8G的,不超过50%

机器配置8G的,最多可以设置6G

机器配置12G的,最多设置为8G

机器配置16G的,最多设置为12G

机器配置 32G的,最多设置为24G

Xms

初始堆的大小,也是堆大小的最小值

配置与Xmx一致

MaxDirectMemorySize

堆外内存大小

一般无需配置 使用了OHC等堆外缓存的需要配置

ParallelGCThreads

并行GC时的线程数(ParallelGC、CMS、G1均适用) 此值过小,则stw时间变长,此值过大,影响吞吐量,CPU过高

必须配置=容器核数

ConcGCThreads

并发标记时的线程数 并发标记时并没有stw,CPU密集型任务(CMS、G1才有并发标记步骤)

限CMS、G1必须配置ParallelGCThreads的20%~50%一般为ParallelGCThreads/4或ParallelGCThreads/2

CICompilerCount

JIT进行热点编译的线程数CPU密集型任务

必须配置(值要大于2)推荐值如下:

1C容器: 2

2C容器:2

4C容器: 2~4

8C容器:2~4

16C容器: 4~12

MetaspaceSize MaxMetaspaceSize

元空间初始大小、元空间最大大小 如果未指定初始大小,默认是20m,应用启动时如果不够就会gc来扩容 元空间并不在虚拟机中,而是使用本机内存,因此受本机内存限制

jdk1.8适用,必须配置,需要大于256M,推荐512M

Xmn NewRatio

Xmn:新生代内存大小

NewRatio:老年代与新生代与内存容量的比例x:1

这2个参数只需设置其中1个即可,若都设置了则以Xmn为准

CMS必须设置,只需配置其中1个参数;G1不需要设置;

Xmn=堆内存Xmx的1/3 NewRatio=2

UseCMSInitiatingOccupancyOnly CMSInitiatingOccupancyFraction=x

CMSInitiatingOccupancyFraction为堆内存占用率达到百分比时开始GC的阈值 默认不设置时,由JVM自动计算垃圾回收的周期

CMS必须设置推荐值70~80,推荐75%

UseCMSCompactAtFullCollection CMSFullGCsBeforeCompaction=x

CMSFullGCsBeforeCompaction为配置fullGC时,进行了多少次fullGC之后对老年代进行压缩整理处理碎片

CMS专用,不强制 推荐值1

HeapDumpOnOutOfMemoryError HeapDumpPath=/export/Logs/

首次遭遇OOM时导出此时堆中相关信息 路径带“/”则为目录,否则为文件

必须配置文件目录需要为已存在的目录,若配置为具体文件,其所属目录也需要为已存在的目录

4C8G配置示例

使用G1

export JAVA_OPTS="-Djava.library.path=/usr/local/lib -server -Xms4096m -Xmx4096m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:ParallelGCThreads=4 -XX:ConcGCThreads=2 -XX:CICompilerCount=2 -Djava.awt.headless=true -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000 -Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/Logs/

使用CMS

export JAVA_OPTS="-Djava.library.path=/usr/local/lib -server -Xms4096m -Xmx4096m -XX:MetaspaceSize=256m -XX:MaxDirectMemorySize=512m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:NewRatio=2 -XX:ParallelGCThreads=4 -XX:ConcGCThreads=2 -XX:CICompilerCount=2 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSCompactAtFullCollection -XX:+CMSParallelRemarkEnabled -Djava.awt.headless=true -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000 -Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/Logs/

使用ParallelGC(1.8默认)

export JAVA_OPTS="-Djava.library.path=/usr/local/lib -server -Xms4096m -Xmx4096m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UnlockExperimentalVMOptions -XX:ParallelGCThreads=4 -XX:CICompilerCount=2 -Djava.awt.headless=true -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000 -Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/Logs/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值