【发布时间】:2020-07-19 14:29:10
【问题描述】:
这是运行负载测试 (Xmx=10g) 时预生产服务器的 JVM 内存使用情况。我有几个问题。
垃圾收集器几乎每 5 分钟运行一次。在这 5 分钟内,堆从 3GB 增长到 10GB。这种增长正常吗?如果没有,如何分析我的应用程序中的问题?
在两个垃圾收集器周期内,平均堆使用量逐渐减少并突然达到峰值。这是什么原因?
在第二条评论中提到的逐渐下降的内部,没有平滑的下降,有一个振动。这是什么原因?
【问题讨论】:
-
对我来说这看起来像是正常/合理的 GC 行为。您只需担心每 5 分钟的峰值是否呈上升趋势。
-
只要没有达到配置的最大堆或完全 GC 阈值,即使上升趋势也不会令人担忧。
-
好点。如果您的应用程序具有(正确实现的)缓存,它可以安全地使用内存达到限制。问题是你的数据结构是否会无限增长;例如内存泄漏。
标签: java jvm load-testing