Wildfly 16:在Java8中更改XX:MaxMetaspaceSize有什么好处?

问题描述 投票:0回答:1

我在Wildfly中遇到了元空间问题。

当前XX:MaxMetaspaceSize为256M。但是我在不同项目的多个服务器组中多次跟踪该问题(服务器组之间总共分配了50个项目)。并每天面对以下异常。

failed to define class: OutOfMemoryException: Metaspace

[大多数帖子(stackoverflow等)建议在使用wildfly的情况下应该为2GB。

但是我读过很多文章,建议在Java 8中不需要增加元空间:

In Java 8, the metaspace that holds your classes can expand without limit by default,

您能解决以下困惑吗?-如果Metaspace自动增加,并假设我设置了256,那么它不会自动增加吗?我将在2G网络中获得什么好处。

java-8 out-of-memory wildfly permgen metaspace
1个回答
0
投票

根据Oracle docs,在Java 8中,类元数据存储在本机内存中,默认情况下是无限的。 MaxMetaspaceSize对用于类元数据的本机内存设置了上限。

如果还启用了UseCompressedOopsUseCompressedClassesPointers,则MaxMetaspaceSize设置用于类元数据的本机内存两个区域的总和的上限-压缩类元数据的区域,以及所有其他类元数据。

另外,2GB听起来有点高。我会慢慢进行测试,以确保您将其设置为满足您的需求的最佳值。

© www.soinside.com 2019 - 2024. All rights reserved.