Wildfly 11.0.0 最终 java.lang.OutOfMemoryError:元空间

Posted

技术标签:

【中文标题】Wildfly 11.0.0 最终 java.lang.OutOfMemoryError:元空间【英文标题】:Wildfly 11.0.0 final java.lang.OutOfMemoryError: Metaspace 【发布时间】:2021-11-01 05:00:26 【问题描述】:

自从新的生产部署以来,我收到java.lang.OutOfMemoryError: Metaspace 异常(在此更改之前,我们使用单独的 jar 进行调度,它工作正常,但由于某些网络问题,它再次停止,因此我们添加了调度程序并包含在 Wildfly 服务器中与其他战争)环境。所以基本上我们使用的是wildfly 11.0.0最终服务器,其中我们有4个war文件,其中一个有@scheduled - 或调度程序,它每10分钟运行一次。所以通常我们会停止wildfly的服务并在新的战争部署后重新启动,但在一定时间(4到5小时)后应用程序开始变慢,当看到服务器控制台时,我可以看到java.lang.OutOfMemoryError:Metaspace如下:

WARN [org.jboss.modules] (default task-11) Failed to define class com.arjuna.ats.jta.cdi.TransactionScopeCleanup$1 in Module "org.jboss.jts" from local module loader @1e802ef9 (finder: local module finder @2b6faea6 (roots: E:\Data\wildfly-11.0.0.Final\modules,E:\Data\wildfly-11.0.0.Final\modules\system\layers\base)): java.lang.OutOfMemoryError: Metaspace

ERROR [org.jboss.as.ejb3.invocation] (default task-55) WFLYEJB0034: EJB Invocation failed on component AuditLoggerHandler for method public void com.banctec.caseware.server.logger.AuditLoggerHandlerBean.publishCaseAudit(java.lang.String,com.banctec.caseware.server.helpers.SessionHolder,com.banctec.caseware.resources.Resource[],java.lang.Long) throws com.banctec.caseware.exceptions.CaseWareException: javax.ejb.EJBTransactionRolledbackException: WFLYEJB0457: Unexpected Error

那么对于每个操作,我们都会得到与java.lang.OutOfMemoryError: Metaspace类似的错误

所以首先我从@scheduler 中删除了纯代码并使用了 Executor 框架,其中我使用了 5 个固定线程池,并且通过此更改我们再次部署,但同样的问题又来了。

我不确定是什么原因导致服务器一次又一次地停机并出现此内存泄漏问题。

在所有 4 场战争中,我们使用 Spring boot 2.0.2。

任何帮助表示赞赏。抱歉英语不好。

【问题讨论】:

【参考方案1】:

您需要增加堆空间。并检查您是否有内存泄漏。请查看以下链接。 http://www.mastertheboss.com/java/solving-java-lang-outofmemoryerror-metaspace-error/

【讨论】:

【参考方案2】:

您可以使用 Jprofiler 等工具来查找内存泄漏。它就像一个魅力。查看以下链接https://www.youtube.com/watch?v=032aTGa-1XM

【讨论】:

以上是关于Wildfly 11.0.0 最终 java.lang.OutOfMemoryError:元空间的主要内容,如果未能解决你的问题,请参考以下文章

在Wildfly上的Startup bean中通过JMX进行AttributeNotFoundException

Wildfly 10.0.0 最终版本是不是支持像 Tomcat 一样的 OCSP?

Wildfly 9.0.2-Struts 1.x 的最终 ClassNotFoundException

Wildfly 上的轴 1

如何将 JMS 消息从 WildFly 10 发送到远程 ActiveMQ

WildFly JNDI 查找部署在 WAR 中的本地 EJB