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

JVM的元空间利用

司马昕
2023-03-14

我在docker中运行的应用程序面临问题。出乎意料的是,它在30分钟后坠毁。当我的应用程序处理哪个缓存时,首先怀疑的是内存利用率。

我在应用程序启动时运行该命令,它显示元空间利用率为98%,这很奇怪。

所以我的问题是,这种利用率是否表明我的应用程序将98%的操作系统内存用于JVM进程,或者98%的操作系统内存可用于JVM?

共有1个答案

孟璞
2023-03-14

它显示了当前元空间相对于当前元空间容量的占用,即

    used / capacity

此答案中说明了元空间使用的capacity提交的和保留的值。

这是一个相当无用的指标,因为Metaspace可以在应用程序生命周期中增长和收缩。

 类似资料:
  • 据我所知,对于旧一代JVM中的空间,它可以用于两个目的, 用于从年轻一代升级到老一代的物品 用于特殊用例中的新对象分配(https://stackoverflow.com/questions/9053144/will-i-encounter-java-lang-outofmemoryerror-even-with-no-lack-of-memory) 我的问题是, 在老一代中,是否还有其他利用空间

  • 绝大部分 Java 程序员应该都见过 "java.lang.OutOfMemoryError: PermGen space "这个异常。这里的 “PermGen space”其实指的就是方法区。不过方法区和“PermGen space”又有着本质的区别。前者是 JVM 的规范,而后者则是 JVM 规范的一种实现,并且只有 HotSpot 才有 “PermGen space”,而对于其他类型的虚拟机

  • 我运行了两个用nginx群集的tomcat实例。在我的tomcats上,我将Infinispan作为分布式缓存运行。当我在缓存中插入大约4mio的记录时,有些奇怪的事情发生了。在图1中你可以看出我的意思。JVM分配的内存比以往任何时候都要多,而且使用后不会释放。 JVM参数: xmx8g xx:newRatio=4 xx:survivorratio=8 xx:+UseCompressedoops

  • 对于Java 8之后的JVM 当metaspace的大小

  • JDK8中引入的元空间仍然是JVM中运行时数据区域的一部分?除了自动增加大小外,它与Permgen空间有何不同。?

  • 我在运行Java cs应用程序时遇到OutOfMemoryError错误。根据错误消息,错误似乎是在将XML字符串传输到Java对象时发生的。 传输代码如下所示 我查看了日志,找到了触发此错误的字符串。然后,我使用上面的代码将这个字符串转换为java对象,大约转换了10万次。未报告任何错误。 我有数千个这样的应用程序在windows xp系统中运行,我担心这会导致一个巨大的问题。我谷歌了这个错误,