问题描述
将使用Java 8运行的Keycloak / JBoss服务器切换为G1GC,并将-XX:MaxMetaspaceSize
设置为256MB。很快它停止响应,并填充了OutOfMemory:Metaspace错误的日志。未启用GC日志。服务器与Dynatrace监视服务挂钩,该服务显示了大量可用的Metapsace。
191MB已使用。 在第二次分配的256MB内存中,有165MB已使用。
我了解到要释放元空间,GC已被调用并且无法释放足够的空间,因此它在GC之后仍在运行GC,因此理解为什么进程被卡住了。但是,我无法理解的是为什么即使有大量空闲空间,进程也耗尽了元空间。没有提供其他JVM参数(xms / XMX除外)。所有堆内存部分都具有足够的可用空间。是否在尝试在元空间中分配60MB以上的空间?这是唯一可能的原因吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)