Java JVM常见的配置参数说明

本文介绍了JVM常用参数的含义与设置方法,包括堆内存、元空间、新生代等区域的大小调整。根据Java官方建议,堆内存大小应设置为老年代存活对象的3-4倍,元空间设置为1.2-1.5倍,年轻代为1-1.5倍。通过监控工具如jstat分析JVM状态,调整合适的参数以优化性能。
摘要由CSDN通过智能技术生成

JVM常用参数

-Xms                                           初始堆内存大小,默认物理内存64/1

                                                     -Xms = -XX:InitialHeapSize

-Xmx                                           最大堆内存,默认物理内存4/1

                                                     -Xmx = -XX:MaxHeapSize

-Xss                                            栈内存大小, 设置单个线程栈大小,一般默认512~1024kb。

                                                   单个线程栈大小跟操作系统和JDK版本都有关系   -Xss = -XX:ThreadStackSize

-Xmn                                           年轻代大小

-XX:MetaspaceSize                    元空间大小,元空间本质跟永久代类似,都是对JVM规范中

                                                    方法区的实现。不过元空间与永久代最大的区别在于:元空间并 

                                                    不在虚拟机中,而是使用本机内存。因此,元空间大小仅受本地

                                                    内存限制。

-XX:MaxMetaspaceSize             最大元空间大小。

-XX:+PrintGCDetails                   打印GC详细日志信息

-XX:SurvivorRatio                       幸存者比例设置

-XX:NewRatio                             新生代比例设置

-XX:MaxTenuringThreshold        进入老年代阈值设置

JDK1.8之前前版本设置

-XX:PermSize                             持久代(方法区)的初始内存大小。(例如:-XX:PermSize=64m)

-XX:MaxPermSize                      持久代(方法区)的最大内存大小。(例如:-XX:MaxPermSize=512m)

JVM参数配置指南

参数配置示例: 

-XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -Xms256m -Xmx256m

文章看下来上面这段配置的意思很简单,设置元空间的初始值和最大值,设置堆空间的初始值和最大值。

为什么MetaspaceSize要设置为128M?为什么堆内存初始值Xms设置为256M而不是512M?

按照Java官方的指导
在这里插入图片描述

  • Java堆大小设置,Xms 和 Xmx设置为老年代存活对象的3-4倍,即FullGC之后的老年代内存占用的3-4倍
  • MaxPermSize(元空间)设置为老年代存活对象的1.2-1.5倍。
  • 年轻代Xmn的设置为老年代存活对象的1-1.5倍。
  • 老年代的内存大小设置为老年代存活对象的2-3倍。

可以让系统运行一段时间后查看系统的各个指标,然后在进行配置。如下用jstat工具查看jvm的情况

jstat -gc javapid
###
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
13824.0 22528.0 13377.0  0.0   548864.0 535257.2  113152.0   46189.3   73984.0 71119.8 9728.0 9196.2     14    0.259   3      0.287    0.546

OU表示老年代所占用的内存为 46189.3 K(大约45M);那么jvm相应的配置参数应该做如下修改

-XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=64M -Xms180m -Xmx180m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hu_wenjie

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

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

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

打赏作者

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

抵扣说明:

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

余额充值