JVM 启动参数学习笔记二
JVM 启动参数学习笔记二
一、JVM 启动参数--堆内存
-Xmx:指定最大的堆内存。如-Xmx8G。这只是限制了 Heap 部分的最大值为 8G。这个内存不包括栈内存,也不包括堆外使用的内存。
-Xms:指定堆内存空间的初始大小。如-Xms8G。而且指定的内存大小,并不是操作系统实际分配的初始值,而是 GC 先规划好,用到才分配。专用服务器上需要保持-Xms 和-Xmx 一致,否则应用刚启动可能就有好几个 FullGC。当两者配置不一致时,堆内存扩容可能会导致性能抖动。
-Xmn:等价于-XX:NewSize,使用 G1 垃圾收集器不应该设置该选项,在其他的某些业务场景下可以设置。官方建议设置为-Xmx 的 1/2~1/4.
-XX:MaxPermSize=size,这是 JDK1.7 之前使用的。Java8 默认允许的元空间无限大,此参数无效。
-XX:MaxMetaspaceSize=size,系统可以使用的最大堆外内存,这个参数跟-Dsun.nio.MaxDirectMemorySIze 效果相同。
-Xss,设置每个线程栈的字节数,影响栈的深度。例如-Xss1M 指定线程栈为 1MB,与-XX:ThreadStackSize=1m 等价。
二、JVM 启动参数--GC 相关
-XX:+UseG1GC:使用 G1 垃圾回收器。
-XX:+UseConcMarkSweepGC:使用 CMS 垃圾回收器。
- XX:+UseSerialGC:使用串行垃圾回收器。
-XX:+UseParallelGC:使用并行垃圾回收器。
-XX:+UnlockExperimentalVMOptions -XX:+UseZGC (Java 11+才有效的参数)
-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC (Java 12+才有效的参数)
版权声明: 本文为 InfoQ 作者【风翱】的原创文章。
原文链接:【http://xie.infoq.cn/article/0d4f996fc5f766972e69a3907】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论