跳到主要内容

jvm 配置

java 堆外内存

-xms -xmx可以限制jvm申请的最小内存和最大内存, 但其实限制的都是堆内存, 剩下的还有部分固定资源的内存, 比如metaspace, 这些可能会占用0.2倍的xmx.

除此之外, 还有堆外直接内存. es等客户端, 直接绕过jvm申请内存, 可以配置MaxDirectMemorySize进行限制.

MaxDirectMemorySize的数值, 默认等于xmx的数值, 因此其实可能出现占用两倍xmx的情况.

关于JDK8中最大堆外内存大小MaxDirectMemorySize

https://juejin.cn/post/6844904066330394638

Spring Boot引起的“堆外内存泄漏”排查及经验总结

https://tech.meituan.com/2019/01/03/spring-boot-native-memory-leak.html