Java 8 Wildfly 16:在Java8中更改XX:MaxMetaspaceSize有什么好处?
我在Wildfly中遇到了元空间问题 目前XX:MaxMetaspaceSize为256M。但我在不同项目的多个服务器组中多次遇到以下问题(总共有50个项目分布在服务器组中)。每天都要面对以下的例外Java 8 Wildfly 16:在Java8中更改XX:MaxMetaspaceSize有什么好处?,java-8,out-of-memory,wildfly,metaspace,Java 8,Out Of Memory,Wildfly,Metaspace,我在Wildfly中遇到了元空间问题 目前XX:MaxMetaspaceSize为256M。但我在不同项目的多个服务器组中多次遇到以下问题(总共有50个项目分布在服务器组中)。每天都要面对以下的例外 failed to define class: OutOfMemoryException: Metaspace 大多数帖子(stackoverflow和其他帖子)建议在wildfly的情况下应该是2GB 但我在不同的文章中读到,在Java 8中,没有必要增加元空间: In Java 8, the
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,
你能解决这个困惑吗?如果元空间是自动增加的,假设我设置了256,那么它不会自动增加吗?2G的好处是什么。在Java 8中,类元数据存储在本机内存中,默认情况下不受限制MaxMetaspaceSize
对用于类元数据的本机内存设置了上限
如果还启用了UseCompressedOops
和UseCompressedClassesPointers
,则MaxMetaspaceSize
设置用于类元数据的本机内存区域总和的上限-压缩类元数据的区域和所有其他类元数据的区域
另外,2GB听起来有点高。我会慢慢地增加和测试,以确保您将其设置为满足您需求的最佳值 “2G”是一个任意数字,就像“256M”一样。我想,人们之所以这么说,是因为“2G”比“256M”大得多,而不是因为他们知道一些具体的东西。是的,当您不指定上限时,就不会有上限(实际机器的内存除外)。