问题现象:使用宝兰德BES应用服务器部署应用时报错,报错日志大致如下:
提示:ERROR SpringApplication run failed
java.lang.OutOfMemoryError:Metaspace
此前在TongWeb部署环境时也有遇到类似问题:TongWeb的OutOfMemoryError: Metaspace 问题处理之一_javax.management.mbeanexception: com.tongweb.deplo_yeyuningzi的博客-CSDN博客
TongWeb的OutOfMemoryError: Metaspace 问题处理之二_tongweb内存不足-CSDN博客
在处理这个问题之前,我们需要了解一下这个报错的Metaspace是什么?设置时需要注意什么?
具体可以参考这篇文章:【精选】深入理解堆外内存 Metaspace-CSDN博客
(虽然有些说的我也看不懂,但是不影响我觉得写的很好)
解决办法:metaspace OOM 调整JVM 的元空间大小信息 即 -xx:MaxMetaspaceSize以及 -xx:MetaspaceSize 具体大小根据实际情况设置
于是BES应用服务器的处理思路也是一样的。 问题在于需要设置多大,在哪里设置?
BES 调整JVM 配置-xx:MaxMetaspaceSize以及 -xx:MetaspaceSize
BES应用服务器的JVM配置可以通过BES管理控制台页面进行。登录BES管理控制台,选择报错的实例,查看实例信息,点击实例信息页面上的JVM配置:
数据单位为M,按照实际情况设置,设置后保存,之后需要重启实例使得配置生效。