一、最近遇到了引用申请机器规格扩大的问题
但是应用本身的JVM参数调整不太准确,导致要么资源使用率不高,要么Java进程很可能被Kill掉。
以8G内存的机器为例,比较合适的参数:
-Xmx:5G 最大的堆内存
-Xms:5G最小的堆内存(直接开辟内存)
-Xmn:1G新生代(本应用主要的使用时老年代,表现FullGC比较频繁)
-XX:MaxPermSize:256m 方法区
-XX:MaxDirectMemorySize:512m (jni里分配的内存,DirectByteBuffer分配的内存等等)
所以使用的内存 5G+256m+512m~=6G
其他2G内存比较保守的预留给,监控进程,一些系统、容器使用的资源。
二、JVM 内存的基本分布: