在Kubernetes中部署JVM应用时,内存使用常常超出堆内存限制,原因包括堆外内存和线程栈等。优化方案包括调整JVM参数、加强内存监控和优化Kubernetes配置,以提升系统稳定性和内存管理效率。
本文介绍了使用JFR报告NMT数据的方法,包括直接字节缓冲区和Foreign Memory API分配堆外内存。还讨论了JFR中控制NMT的设置和在JDK Mission Control中查看NMT数据的方法。最后,介绍了使用JFR记录Resident Set Size(RSS)事件来跟踪内存消耗。
本文提出了提高内存占用的方法,以同时优化JVM垃圾回收算法的吞吐量和停顿时长,包括堆内内存和堆外内存,如Direct Byte Buffers和Metaspace,并提出了应用健康度检查规则,建议升级JRE版本,并在Shell脚本中Export JAVA_OPTS环境变量,以达到优化的目的。
完成下面两步后,将自动完成登录并继续当前操作。