TOMCAT 热部署导致 Caused by: java.lang.outOfMemoryError: Metaspace
操作系统:Ubuntu 20.04.5 LTS
JAVA版本:1.8.0_362
TOMCAT版本:Apache Tomcat 8.5
1.问题描述
tomcat 在热部署时很容易造成OOM

2.问题产生的原因:
当Java虚拟机(JVM)的元空间内存不足时,就会发生此错误。元空间是用于存储类元数据(如类名、方法名和字段名)的内存的一部分。元空间是Java堆的一部分,用于存储有关类和方法的元数据。JVM加载一个类时,会在元空间中存储有关该类的信息。如果元空间内存不足,JVM将无法再加载任何类,应用程序将因OutOfMemoryError而崩溃。要修复此错误,可以在启动JVM时通过设置-XX:MaxMetaspaceSize参数来增加元空间的大小。例如,可以将参数设置为512m,为元空间分配512兆字节的内存:java-XX:MaxMetaspaceSize=512m,还可以尝试减少应用程序使用的类和类加载器的数量,因为这有助于减少元空间中的内存使用。
3.解决方案。
调整jvm参数 MaxMetaspaceSize,原来时350m,现加大至500m。
-XX:MaxMetaspaceSize=500M

浙公网安备 33010602011771号