什么是元数据GC阈值,我如何调整它?

在一个应用程序中,我有以下内容 -verbose:gc

[GC (Metadata GC Threshold)  8530310K->2065630K(31574016K), 0.3831399 secs]

[Full GC (Metadata GC Threshold) 2065630K->2053217K(31574016K), 3.5927870 secs]

[GC (Metadata GC Threshold) 8061486K->2076192K(31574016K), 0.0096316 secs]

[Full GC (Metadata GC Threshold) 2076192K->2055722K(31574016K), 0.9376524 secs]

[GC (Metadata GC Threshold) 8765230K->2100440K(31574016K), 0.0150190 secs]

[Full GC (Metadata GC Threshold) 2100440K->2077052K(31574016K), 4.1662779 secs]

这是什么 “ Metadata GC阈值” 以及如何降低它。注意:尽管Full

GC花费很长时间进行清理,但实际上并没有清理太多,即,如果不这样做,效果会更好。

回答:

日志消息表明GC是由 Metaspace 分配失败引起的。 元 空间

保存类元数据。它们已经出现在Java

8中以代替 PermGen

这是一些调整元

空间的 选项。

您可能要设置以下一个或几个选项:

-XX:MetaspaceSize=100M 设置分配的类元数据空间的大小,该类元数据空间将在首次超过垃圾收集时触发垃圾收集;

-XX:InitialBootClassLoaderMetaspaceSize=32M 增加启动类加载器元空间;

-XX:MinMetaspaceFreeRatio=50 使元空间更加积极地增长;

-XX:MaxMetaspaceFreeRatio=80 减少元空间缩小的机会;

-XX:MinMetaspaceExpansion=4M 元空间扩展的最小大小;

-XX:MaxMetaspaceExpansion=16M 不使用完整GC扩展元空间的最大大小。

以上是 什么是元数据GC阈值,我如何调整它? 的全部内容, 来源链接: utcz.com/qa/422664.html

回到顶部