当前位置: 首页 > 知识库问答 >
问题:

什么是元数据GC阈值以及如何调整它?

濮阳俊明
2023-03-14

在应用程序中,我有以下-详细: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]

这个“元数据GC阈值”是什么,以及如何降低它。注意:虽然完整的GC花了很长时间进行清理,但实际上清理得并不多,也就是说,如果不这样做,它会更好。

共有2个答案

薄龙光
2023-03-14

虽然已经有一个公认的答案,但想提一下,还有:

-XX:MaxMetaspaceSize=

也是从这里,

一旦类元数据使用达到“MaxMetaspaceSize”,就会触发对死类和类加载器的垃圾收集。

这篇帖子里有一个可用选项的列表。

张宣
2023-03-14

日志消息表明GC是由元空间分配失败引起的。元空间保存类元数据。它们出现在Java中

以下是一些调整Metaspaces的选项。
您可能需要设置以下一个或多个选项:

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

-XX:InitialBootClassLoaderMetaspaceSize=32M增加引导类加载程序元空间;

-XX:MinMetaspaceFreeRatio=50使元空间增长更大;

-XX: MaxMetaspaceFreeRatio=80减少Metaspaces缩水的机会;

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

-XX:MaxMetaspaceExpansion=16M在不使用完全扩展的情况下扩展Metaspace的最大大小

 类似资料:
  • 问题内容: 在一个应用程序中,我有以下内容 这是什么 “ Metadata GC阈值” 以及如何降低它。注意:尽管Full GC花费很长时间进行清理,但实际上并没有清理太多,即,如果不这样做,效果会更好。 问题答案: 日志消息表明GC是由 Metaspace 分配失败引起的。 元 空间 保存类元数据。它们已经出现在Java 8中以代替 PermGen 。 这是一些调整元 空间的 选项。 您可能要设

  • 这个问题不同于关于调试异常的一般建议,因为问题的原因并不总是在调用堆栈上,而特定的建议是必要的。

  • 问题内容: 有人可以给出一个清晰的定义,以及一个简单的示例,为不了解JavaScript和node.js的人解释什么是“回调地狱”吗? 什么时候(以哪种设置)发生“回调地狱问题”? 为什么会发生? “回调地狱”是否总是与异步计算相关? 还是在单线程应用程序中也可能发生“回调地狱”? 我在Coursera参加了“反应式课程”,Erik Meijer在他的一次演讲中说RX解决了“回调地狱”的问题。我在

  • 本文向大家介绍GC是什么? 为什么要有GC?相关面试题,主要包含被问及GC是什么? 为什么要有GC?时的应答技巧和注意事项,需要的朋友参考一下 答 GC(Garbage Collection) GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一: 当程序需要更多的堆空间时,GC需要进行垃圾清理工作,暂停所有线程,找出所有无被引用的对象,进

  • 请解释Spring中关于异常的以下内容: 这是什么意思? 在什么条件下抛出? 如何预防? 这篇文章是关于使用Spring的应用程序中出现的全面问答。

  • 问题内容: 我参与开发一个Java项目,该项目使用一些C ++组件,因此我需要Jacob.dll。(在Windows 7上) 无论我把Jacob.dll放在哪里,我都在不断获取。 我在寻找可能的决定,而到目前为止尚未尝试的决定是设置LD_LIBRARY_PATH变量,指向.dll文件。 我经验不足,不熟悉该变量的含义和用法-您能帮我吗? 问题答案: 通常,您必须在JVM的命令行上进行设置: