tomcat9开启gc日志,并设置内存大小
一、内存配置
1)堆内内存分配,这块用于存放对象,如果-Xmx偏小将会导致java.lang.OutOfMemory错误
-Xms8g //初始内存,默认是内存的1/64,当堆空余70%,会调整到Xms的大小
-Xmx8g //最大内存,默认是内存的1/4,默认空堆剩余40%时,就会加到最大限制
-Xmn4g //年轻代内存大小。注意调整该值会导致老年代空间变化,对性能有一定影响,sun推荐该值为总内存的3/8
-Xss256k //设定每个线程的堆栈大小。这个就要依据你的程序,看一个线程大约需要占用多少内存,可能会有多少线程同时运行等。
-XX:PermSize256m //永久区初始化大小,默认是物理内存的1/64(Java8+已移除)
-XX:MaxPermSize=256m //永久区最大内存,默认是内存的1/4(Java8+已移除)
整个堆大小=年轻代大小 + 年老代大小 + 持久代大小
2)堆外内存分配
Direct ByteBuffer是通过jni在虚拟机外内存中分配的。Direct ByteBuffer可以通过-XX:MaxDirectMemorySize来设置,此参数的含义是当Direct ByteBuffer分配的堆外内存到达指定大小后,即触发Full GC。注意该值是有上限的,默认是64M,最大为sun.misc.VM.maxDirectMemory(),在