java元空间扩容_调整元空间metaspace大小

本文详细探讨了Java元空间MaxMetaspaceSize和CompressedClassSpaceSize参数的作用,解释了它们如何影响元空间的大小。元空间的大小直接影响类加载,而默认设置可能不足以应对所有情况。通过计算每个类的平均元空间需求,可以为应用程序设定合理的元空间限制,以避免OutOfMemoryError。建议根据实际应用的类数量和大小,结合安全裕度来设置MaxMetaspaceSize。
摘要由CSDN通过智能技术生成

MaxMetaspaceSize和CompressedClassSpaceSize是控制元空间大小的旋钮

现在,这些参数可能有点混乱。首先,它们有两种,它们有着微妙的不同含义,它们相互影响。

所以让我们仔细看看。我们将详细解释这些参数是如何工作的。然后,我们将分析单个类平均需要多少元空间。最后,我们将尝试导出一些粗略的经验法则,并检查默认行为是什么。

这里再明确两个概念:

MaxMetaspaceSize:这是对提交的元空间最大值的“软”限制。它包括非类空间和类空间。从这个意义上说,它是“软”的,因为除了希望有一个限制之外,没有紧迫的技术原因。它是完全可选的,实际上在默认情况下是关闭的。

CompressedClassSpaceSize:这是一个硬限制,定义压缩类空间的虚拟大小。“很难”,因为我们需要在VM启动时修复它,而且永远无法更改它。如果我们省略它,它默认为1G。

此图说明了这些限制是如何工作的:

354772e2e46b7fa1467617b0666115f2.png

红色部分是Metaspace的提交部分的总和,包括非类空间节点和一个巨大的类空间节点。此总和受-XX:MaxMetaspaceSize限制。尝试提交超过-XX:MaxMetaspaceSize的内存将导致OutOfMemoryError("Metaspace")。

-XX:MaxMetaspaceSize的目的当然很简单:对提交的Metaspa

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值