本套视频是由HeapDump社区推出的 JVM 参数系列课程~
从JDK8开始,JVM将原来存放klass元数据的Perm换成了Metaspace,Perm时期会为klass元数据分配一块内存,如果设置不够用就会抛出OOM,Metaspace的出现希望能解决这个问题,Metaspace确实可以最大限度来使用堆外的内存,但是挺遗憾,还是有一些参数会导致Metaspace抛出OOM
那今天我们就来聊下和Metaspace大小相关的参数,说起Metaspace的大小参数,有很多人肯定会想到MetaspaceSize和MaxMetaspaceSize,但是其实不然,这两个参数是控制Metaspace触发GC的,真正和Metaspace的内存大小有关的参数主要是下面的几个:
CompressedClassSpaceSize:CompressedClassSpaceSize InitialBootClassLoaderMetaspaceSize:InitialBootClassLoaderMetaspaceSize