java - 帮助处理非常奇怪的 Java GC 行为

标签 java garbage-collection

我有一个在 Apache 后面的 JBoss 上运行的 Java 网络应用程序(通过 mod_jk),我看到了一些非常奇怪的 GC 行为。我在这个问题上附上了一张图表。以前有没有人见过类似的 GC 行为?它是 Java 6,在服务器级机器上根据人体工程学进行默认 GC 调整。谢谢。

注意:上图是全尺寸版本的链接。该图是使用 GCViewer 生成的.

最佳答案

问题似乎是即使在完全垃圾回收之后系统也无法恢复足够的内存。这也有将对象提升到不真正属于那里的长期和幸存者空间的负面影响。

老年代的大小应该随着时间的推移稳定下来,大多数对象(或者至少应该)是非常短暂的。如果你发现老年代不断增长,那么可能某处存在资源泄漏。从您的图表看来,某些分配似乎正在使系统越过边缘并进入 gc 死亡螺旋。

试着了解正在创建的对象,更重要的是,了解它们停留了多长时间。这将使您最好地了解应该查看的位置。

关于java - 帮助处理非常奇怪的 Java GC 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/771920/

相关文章:

java - Android Studio 按钮没有响应(OnClick)

c - Git - 垃圾收集器是否允许并行运行?

ruby - 在 Ruby 中删除类实例?

linux - 如何可视化在 Linux 上工作的 JVM?

java - 对 4GB JVM 和 3GB 缓存进行适当的 JVM/GC 调优

java - 如何使用mockito模拟Rest模板

java - 始终返回到我的应用程序的主表单/Activity

java - 情感分析工具的停用词库

java - 如何重构 vertx 中的异步调用链以避免回调 hell

Java 详细 GC 日志配置 - 未创建文件