在WildFly中,有关Metaspace大小的最佳实践是什么?
例如,对于最大堆内存,我会进行以下设置:
((未运行Wildfly时的内存) * 2) - (可用内存总量)
我知道如果不指定MaxMetaspaceSize,则Metaspace会自动增加,但这是一个好的实践吗?
提前感谢您。
在WildFly中,有关Metaspace大小的最佳实践是什么?
例如,对于最大堆内存,我会进行以下设置:
((未运行Wildfly时的内存) * 2) - (可用内存总量)
我知道如果不指定MaxMetaspaceSize,则Metaspace会自动增加,但这是一个好的实践吗?
提前感谢您。
WildFly应用服务器在standalone.conf
文件中设置初始化和最大元空间值为96MB / 256MB,如下所示:
... -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m ... -Xmx512m ...
然而,在大型生产应用程序中,MaxMetaspaceSize
通常需要更大,因为它需要包含应用程序中所有加载的类的元数据。像WildFly一样将其设置为最大堆大小(-Xmx
)的一半似乎是一个安全的选择,因为JVM会根据需要进行垃圾回收。