gpt4 book ai didi

java - JVM YoungGen 0%, Perm Gen 99%, OldGen Full

转载 作者:搜寻专家 更新时间:2023-11-01 03:34:02 25 4
gpt4 key购买 nike

我有一个 JEE 应用程序最近开始出现 CPU 使用率峰值(例如 40 核服务器上 27 个内核的 100%)并且应用程序不可用的时间越来越长。这与以下帖子中描述的问题非常相似,包括弹跳应用程序服务器会使问题消失,直到它在几个小时后再次出现:

Old Gen heap is full and the Eden and Survivor are low and almost empty

当应用程序遇到这些“卡住”时,我获取了一些核心转储输出,并且我看到了以下 JVM GC 输出:

PSYoungGen total 11221504K, used 2435K
eden space 9238528K, 0% used
from space 19829796K, 0% used
to space 1970176K, 0% used
ParOldGen total 39613440K, used 39276477K
object space 39613440K, 99% used
PSPermGen total 254976K, used 115497K
object space 254976K, 45% used

根据引用的帖子和上面的输出,我想我明白“卡住”是由在 ParOldGen 空间上运行(徒劳?)的垃圾收集器驱动的。我缺少的部分:

  1. 为什么 PermGen 空间的使用率保持在 45%。也就是说,ParOldGen 中约 39GB 的内容最终会过渡到 PSPermGen 中吗?

  2. 几乎为空的 PSYoungGen 空间有什么意义?这是否意味着应用程序不会在稳定状态下创建任何/许多新对象实例?

上面的帖子还描述了“为 ParOldGen 提供更多余量”的选项,但我不清楚这是否意味着通过 -Xmx 增加总堆大小,或者是否有明确的 JVM GC 参数。我看到 NewRatio 参数控制新生代相对于老年代的大小。 PSYoungGen 本质上是空的这一事实是否意味着它太大,我应该使用较小的 NewRatio 值?

在此先感谢您的帮助。

最佳答案

will the ~39GB of stuff in ParOldGen ultimately transition into PSPermGen?

Java 7 中的 PermGen(在 Java 8 中被元空间取代)用于保存代码。从堆传递到 PermGen 的唯一东西是字节码,所以除非你正在生成或加载类,否则没有任何东西从一个传递到另一个。它们是不同的空间。

What is the significance of the nearly empty PSYoungGen space?

Full GC 后年轻代为空。一旦您的老一代开始填满,Full GC 就很常见。

Does this mean that the application isn't creating any/many new object instances at steady state?

这更有可能意味着它最近进行了 Full GC。

describes the option of "giving more headroom" to ParOldGen, but I'm not clear if that means increasing the total heap size via -Xmx or if there's an explicit JVM GC parameter.

增加最大堆可以给你更多的空间,但我会先检查一下

  • 您没有内存泄漏。
  • 您不能将大量数据移出堆,例如数据库或 native 内存。

Would the fact that the PSYoungGen is essentially empty mean that it's too large, and that I should use a smaller NewRatio value?

这可以帮助您为老一代提供更多空间,但它可能只会在内存耗尽之前给您更多时间。

关于java - JVM YoungGen 0%, Perm Gen 99%, OldGen Full,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37231379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com