Wildfly有推荐的Metaspace设置大小吗?

4

在WildFly中,有关Metaspace大小的最佳实践是什么?

例如,对于最大堆内存,我会进行以下设置:

((未运行Wildfly时的内存) * 2) - (可用内存总量)

我知道如果不指定MaxMetaspaceSize,则Metaspace会自动增加,但这是一个好的实践吗?

提前感谢您。


  1. 在你再次询问最佳实践之前,请考虑这个链接:http://www.satisfice.com/blog/archives/27。
  2. 你的例子可能适合你,但根据上下文来看,它使用内存可能过于保守或过于激进。(而且它没有考虑到堆外内存,不仅限于元空间。)
  3. 我的建议?我不会给出,因为这是观点而非事实的陈述。
- Stephen C
请只翻译文本内容,不要解释任何与元空间参数相关的内容。 - Eugene
谢谢您的关注,@StephenC和我都读了这篇文章,它很棒。我理解您的观点,并且部分同意“最佳实践”主题取决于应用程序的上下文,因此您需要测试应用程序以找到适合它的设置,但我相信几乎所有事情都有一些默认值或建议,因此公司不会花费时间创建调整建议或默认建议... 当我询问“最佳实践”时,只是从默认值开始,以便我可以测试并查看是否适用。但感谢您的意见。 - Guilherme Bernardi
@Eugene 谢谢,我会继续在这里搜索,并在JasperWiki jaspersoft-maxmetaspacesize-java8中找到相同的建议,我会在这里测试。 - Guilherme Bernardi
1个回答

8

WildFly应用服务器在standalone.conf文件中设置初始化和最大元空间值为96MB / 256MB,如下所示:

... -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m ... -Xmx512m ...

然而,在大型生产应用程序中,MaxMetaspaceSize通常需要更大,因为它需要包含应用程序中所有加载的类的元数据。像WildFly一样将其设置为最大堆大小(-Xmx)的一半似乎是一个安全的选择,因为JVM会根据需要进行垃圾回收。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接