JVM 参数(JDK8)

官方文档:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html#BGBCIEFC

 

-X :非标准选项

-XX:非稳定选项

 

在选项名前用 “+” 或 “-” 表示开启或关闭特定的选项,例:

    -XX:+UseCompressedOops:表示开启 压缩指针

    -XX:-UseCompressedOops:表示关闭 压缩指针

 
1.堆分配参数

-Xmn10M:设置新生代区域大小为10M

-XX:NewSize=2M:设置新生代初始大小为2M

-XX:MaxNewSize=2M:设置新生代最大值为2M

- - ##(如果以上三个同时设置了,谁在后面谁生效。生产环境使用-Xmn即可,避免抖动)

-Xms128M:设置java程序启动时堆内存128M(默认为物理内存1/64,且小于1G)

-Xmx256M:设置最大堆内存256M,超出后会出现 OutOfMemoryError(默认为物理内存1/64,且小于1G)

- - ##(生产环境 -Xms 与 -Xmx 最好一样,避免抖动)
-Xss1M:设置线程栈的大小 1M(默认1M)

- - ##  -XX:ThreadStackSize,-Xss 设置在后面,以-Xss为准;  -XX:ThreadStackSize设置在后面,主线程以 -Xss为准,其他线程以  -XX:ThreadStackSize为准

-XX:MinHeapFreeRatio=40:设置堆空间最小空闲比例(默认40)(当-Xmx与-Xms相等时,该配置无效)

-XX:MaxHeapFreeRatio=70:设置堆空间最大空闲比例(默认70)(当-Xmx与-Xms相等时,该配置无效)

-XX:NewRatio=2:设置年轻代与年老代的比例为2:1

-XX:SurvivorRatio=8:设置年轻代中eden区与survivor区的比例为8:1

-XX:MetaspaceSize=64M:设置元数据空间初始大小(取代-XX:PermSize)

-XX:MaxMetaspaceSize=128M:设置元数据空间最大值(取代之前-XX:MaxPermSize)

-XX:TargetSurvivorRatio=50:设置survivor区使用率。当survivor区达到50%时,将对象送入老年代

-XX:+UseTLAB:在年轻代空间中使用本地线程分配缓冲区(TLAB),默认开启

-XX:TLABSize=512k:设置TLAB大小为512k

-XX:+UseCompressedOops:使用压缩指针,默认开启

-XX:MaxTenuringThreshold=15:对象进入老年代的年龄(Parallel是15,CMS是6)

2.垃圾回收器相关

-XX:MaxGCPauseMillis:设置最大垃圾收集停顿时间(收集器工作时会调整其他参数大小,尽可能将停顿控制在指定时间内)

-XX:+UseAdaptiveSizePolicy:打开自适应GC策略(该摸式下,各项参数都会被自动调整)

 

-XX:+UseSerialGC:在年轻代和年老代使用串行回收器
 

-XX:+UseParallelGC:使用并行垃圾回收收集器,默认会同时启用 -XX:+UseParallelOldGC(默认使用该回收器)

-XX:+UseParallelOldGC:开启老年代使用并行垃圾收集器,默认会同时启用 -XX:+UseParallelGC

-XX:ParallelGCThreads=4:设置用于垃圾回收的线程数为4(默认与CPU数量相同)
 

-XX:+UseConcMarkSweepGC:使用CMS收集器(年老代)

-XX:CMSInitiatingOccupancyFraction=80:设置CMS收集器在年老代空间被使用多少后触发

-XX:+CMSClassUnloadingEnabled:允许对类元数据进行回收

-XX:+UseCMSInitiatingOccupancyOnly:只在达到阈值的时候,才进行CMS回收
 

-XX:+UseG1GC:使用G1回收器

-XX:G1HeapRegionSize=16m:使用G1收集器时设置每个Region的大小(范围1M - 32M)

-XX:MaxGCPauseMillis=500 :设置最大暂停时间(毫秒)
 

-XX:+DisableExplicitGC:禁止显示GC的调用(即禁止开发者的 System.gc();)

 
3.GC日志

-XX:+PrintGCDetails:打印GC信息

-XX:+PrintGCTimeStamps :打印每次GC的时间戳(现在距离启动的时间长度)

-XX:+PrintGCDateStamps :打印GC日期

-XX:+PrintHeapAtGC:每次GC时,打印堆信息

-Xloggc:/usr/local/tomcat/logs/gc.$$.log :GC日志存放的位置

4.堆快照

-XX:+HeapDumpOnOutOfMemoryError:出现内存溢出时存储堆信息,配合 -XX:HeapDumpPath 使用

-XX:HeapDumpPath=/usr/local/tomcat/logs/oom.%t.log:堆快照存储位置

-XX:+UseLargePages:使用大页  

-XX:LargePageSizeInBytes=4m:指定大页的大小(必须为2的幂)

滚动日志记录
-XX:+UseGCLogFileRotation  : 开启滚动日志记录
-XX:NumberOfGCLogFiles=5 :滚动数量,命名为filename.0, filename.1 .....  filename.n-1,  然后再从filename.0 开始,并覆盖已经存在的文件
-XX:GCLogFileSize=8k  :  每个文件大小,当达到该指定大小时,会写入下一个文件
-Xloggc:/gc/log   :日志文件位置
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Development Kit (JDK)是Java开发工具包,而JVM参数是为Java虚拟机(JVM)配置的一组参数JDK8是Java 8版本的JDK,下面我将详细解释JDK8中常用的JVM参数配置。 1. -Xms和-Xmx:这是设置JVM初始化堆内存和最大堆内存的参数。-Xms设定初始堆大小,-Xmx设定最大堆大小。例如,-Xms512m表示初始堆大小为512MB,-Xmx1024m表示最大堆大小为1GB。 2. -Xss:这是设置线程栈大小的参数。默认值根据操作系统和JVM版本而定。可以根据应用程序的需求进行调整。例如,-Xss256k表示线程栈的大小为256KB。 3. -XX:MetaspaceSize和-XX:MaxMetaspaceSize:这是设置元空间(Metaspace)初始大小和最大大小的参数。元空间是Java 8引入的一种取代永久代(PermGen)的存储区域。例如,-XX:MetaspaceSize=128m表示元空间的初始大小为128MB,-XX:MaxMetaspaceSize=256m表示元空间的最大大小为256MB。 4. -XX:NewSize、-XX:MaxNewSize和-XX:SurvivorRatio:这些是控制新生代(Young Generation)内存大小以及Eden区、Survivor区的比例的参数。新生代是堆内存的一部分,存放新创建的对象。可以通过调整这些参数来优化垃圾回收性能。 5. -XX:+UseParallelGC和-XX:+UseConcMarkSweepGC:这些是选择垃圾回收器的参数。Parallel GC(并行垃圾回收器)和CMS(并发标记清除垃圾回收器)是JDK8默认的两种垃圾回收器。分别用于在不同场景下提供更好的垃圾回收性能。 这些只是JDK8中常用的JVM参数配置的一部分。根据实际需求,还有其他许多参数可以进行调整以达到最佳性能和稳定性。重要的是要了解这些参数,并根据应用程序的需求进行适当的配置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值