【问题标题】:JVM Tuning optionsJVM 调优选项
【发布时间】:2019-02-22 17:41:44
【问题描述】:

我们的应用在加载大约 24 小时后显示频繁的 Full GC。强制重启。

当我们分析我们的 GC 日志时,表明在 20GB MaxHeap 中,只有 1GB 用于年轻代,19GB 用于 OLD 代。

命令选项为-Xms2g -Xmx20g

-Xms2g 应该增加到 10GB 还是等于 20GB,以便 NewRatio 默认比率为 2 可以让年轻代使用更大的 JVM 部分?

【问题讨论】:

  • 当 JVM 觉得有必要将最初的 2GB 堆扩展到 20GB 时,肯定有这种需要,而拥有 19GB 的旧代会引发警报。那个 19GB Old Gen 真的满了吗?然后,您应该检查内存泄漏,而不是尝试调整 JVM。

标签: performance jvm-arguments


【解决方案1】:

使用 jmap -histo 监控 JVM 堆,并在堆大小出现峰值时发现了一种模式。 还尝试使用http://gceasy.io进行GC日志分析

实际上一些休眠实体堆积在事务中,这是代码中的一个问题。

在代码中更正了它,它确实有助于控制堆而不是尖峰。

另一方面,观察到虽然没有指定 New-Old 比例,所以 JVM 应该使用 1:2 的比例,但事实并非如此。 因此专门为 NewSize 和 MaxNewSize 提供了值,它有助于获得更好的结果。

【讨论】:

    猜你喜欢
    • 2014-10-28
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 2014-07-17
    相关资源
    最近更新 更多