什么是元数据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