gpt4 book ai didi

java - 堆内存使用中的 PS Old Gen 内存 : GC settings for Java Out Of Memory Exception

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:11:48 25 4
gpt4 key购买 nike

enter image description here

以下是我的 JVM 设置:

 JAVA_OPTS=-server -Xms2G -Xmx2G -XX:MaxPermSize=512M -Dsun.rmi.dgc.client.gcInterval=1200000 -Dsun.rmi.dgc.server.gcInterval=1200000 -XX:+UseParallelOldGC -XX:ParallelGCThreads=2 -XX:+UseCompressedOops  -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jbos88,server=y,suspend=n

问题:总堆内存:2GB老一代:1.4GB(堆的 2/3)新一代:600MB(堆的 1/3)

Old Gen 的内存增长超过其分配大小的 70% 0f,并且即使在 100%(即 1.4GB)时也不会受到 GC 的影响。人们可以看到下面的图表达到峰值并且从来没有 GC,内存下降是在它被强制从 JConsole 进行 GC 时。这个问题最终导致网络服务器宕机。

我遗漏或错误设置 JVM 的任何内容吗?

提前感谢您的帮助。

更新我的问题:

在堆分析之后,有状态 session bean 似乎是主要嫌疑人: enter image description here我们有状态 session bean,它包含由 Hibernate 辅助的持久性逻辑。

最佳答案

GC 最终会被调用,old gen 几乎从不被调用(因为它非常慢)。GC 确实会运行,但它首先只会在新生代和幸存者世代上运行,它有一个完全不同的算法来清理老一代,它比新生代/幸存者世代慢。

那些数字真的很高,老一代的总和永远不会比新的高。我猜你有内存泄漏。

我只能猜测您的程序正在处理大文件,您可能保存对它们的引用的时间太长了。

关于java - 堆内存使用中的 PS Old Gen 内存 : GC settings for Java Out Of Memory Exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25818068/

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