问题场景

在使用wildfly最新版本18.0.0.Final时,采用wildfly的默认配置进行启动,部署项目,发现出现内存溢出问题: java.lang.OutOfMemoryError。GC开销限制超出错误每当我取消部署/部署模块9-10次时,wildfly的内存使用量继续缓慢增加而且从未减少,它再次给出java.lang.OutOfMemoryError:超出GC开销限制错误。

在此过程中还会出现wildfly假死,无法操作后台页面、无法通过Ctrl+c停止等问题。

解决方法

尝试了很多解决方法都无效,最终的解决方案只能是增加wildfly的内存配置。主要是增加堆内存。

解决方案有两种。第一种为在bin\standalone.conf.bat文件中修改jvm的配置。但这种形式对18.0.0.Final并不起效,具体原因不详细。

set "JAVA_OPTS=-Xms64M -Xmx1024M -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m"

针对其他版本倒是可以尝试。配置完之后,可以通过管理后台的运行时来查看,也可以通过启动日志来查看。启动日志时会打印JAVA_OPTS的值。正是查看了日志才发现在此配置并不起效。

第二种方法,直接在bin/standalone.conf中配置。

if [ "x$JAVA_OPTS" = "x" ]; then
   JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"
   JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
else
   echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS"
fi

这里修改JAVA_OPTS的值即可,修改注意先备份一下该文件。很显然默认配置-Xmx512m很难满足稍微大一些的项目。

原文链接:《wildfly内存Wildfly及内存配置

相关文章:

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注