谈JVM xmx, xms等内存相关参数合理性设置
💡
原文中文,约6200字,阅读约需15分钟。
📝
内容提要
本文提出了提高内存占用的方法,以同时优化JVM垃圾回收算法的吞吐量和停顿时长,包括堆内内存和堆外内存,如Direct Byte Buffers和Metaspace,并提出了应用健康度检查规则,建议升级JRE版本,并在Shell脚本中Export JAVA_OPTS环境变量,以达到优化的目的。
🎯
关键要点
- 本文讨论了如何提高JVM垃圾回收算法的吞吐量和停顿时长。
- 提高内存占用可以同时优化吞吐量和停顿时长。
- 内存占用包括堆内内存和堆外内存。
- 堆内内存用于存放Java对象实例和数组,GC操作主要针对这部分内存。
- 堆内内存的动态调整通过-Xms和-Xmx参数进行设置。
- 合理设置Xmx非常重要,建议设置为容器内存的50%至80%。
- 堆外内存包括Direct Byte Buffers和Metaspace等。
- Direct Byte Buffers使用系统原生内存,提高I/O效率,但存在内存泄露风险。
- Metaspace取代了永久代,使用系统原生内存,需关注内存泄露问题。
- 应用健康度检查规则包括JVM版本、GC方法、Xmx、Xms等指标。
- 建议升级JRE版本到1.8.0_191及以上,并在Shell脚本中设置JAVA_OPTS环境变量。
- 特殊情况下使用旧版本Java时需添加额外参数以确保性能。
➡️