JVM生产环境常用参数配置及调优建议

一、生产常用参数配置

JAVA_OPTS="-server -Xms4G -Xmx4 -Xmn2G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=8 -XX:G1HeapRegionSize=16m -XX:MaxGCCount=10 -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:-UseGCOverheadLimit -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./heap/ -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:./g1-gc.log 

二、常用参数详解  

以下表格里面的参数是以G1垃圾收集器为例,适用JDK8版本,列举生产环境常用的参数,大家可根据自身实际情况进行选择。

参数
含义
说明
-server 服务端模式 启动 Server VM(适用Web应用),优化应用程序的性能,适用于长期运行的生产环境,除此之外还有Client模式(适用C/S桌面程序)
-Xms 堆的初始大小

JVM 启动时堆内存的初始分配大小

-Xmx 堆的最大大小 堆内存的最大可用内存
-Xmn 新生代(Young Generation) 的大小 新生代用于存放新创建的对象,JVM 会先进行年轻代的垃圾收集
-XX:+UseG1GC 启用 G1垃圾收集器 适用于低延迟、高吞吐量的服务端应用。G1 具有低停顿时间的优势,并且能够预测 GC 的时间,适用2GB 及以上大内存
-XX:MaxGCPauseMillis 设置目标最大GC暂停时间(毫秒) G1 会尽量保证垃圾回收的暂停时间不超过这个值,减少对应用的影响
-XX:InitiatingHeapOccupancyPercent 设置G1GC触发垃圾回收的堆占用百分比 默认值为45%,即当堆使用率达到45%时,G1开始进行并发标记周期,并进行垃圾回收
-XX:ParallelGCThreads 设置并行GC线程数 线程数设置为 CPU 核心数的 2 倍较为合适
-XX:ConcGCThreads 设置并发GC线程数 合适的值可以加速并行 GC,但也会增加 CPU 的负载,建议也是CPU核心数2倍
-XX:G1HeapRegionSize 设置每个Region区域的大小 默认情况下,G1GC 会将堆分为 2048 个区域。调整此参数时需要考虑堆的大小以及系统需求
-XX:MaxGCCount 设置G1规定时间内的最大暂停次数 控制 G1GC 停顿次数的限制
-XX:MetaspaceSize 设置 Metaspace 区域的初始大小 元空间用于存放类的元数据信息,例如类的结构、方法等信息
-XX:MaxMetaspaceSize 设置 Metaspace(类元数据空间)的最大大小 Metaspace 存储了 JVM 加载的类的元数据。过大可能导致内存使用过高,过小可能导致类加载失败
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GentleDevin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值