jvm 伊甸园空间和旧世代峰值增加

zu0ti5jz  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(194)

Java 17升级后,JVM堆内存开始增加,当我们检查内存指标时,Eden Space和Old Generation的大小波动和峰值都在增加。
Old Gen的低值似乎没有增加,但问题是它增加得如此之快,峰值也在增加。
当我检查内存转储时,似乎没有潜在的泄漏。我们可以说这里有内存泄漏吗?


的数据
编辑:我们已经从Java 11升级到17。我没有看到GC指标中有任何异常活动。

升级前:堆使用率低得多:

我在GC metricis:

中没有看到这样的活动

yftpprvb

yftpprvb1#

确定增加的Heap Memory Vs Memory Leak情况

  • Java 17更改了默认的garbage collector (GC) from Parallel GC to G1 GC。-G1 GC将堆划分为更小的区域,并根据应用程序的行为调整区域的大小和数量,并以不同的方式处理年轻代和旧代,这可能会影响堆的使用模式

要验证使用不同的GCs运行应用程序并比较结果,请使用XX:+UseParallelGC选项切换回Parallel GC,或尝试其他GC,如ZGC or Shenandoah GC
使用-Xlog:gc选项启用GC logging并更详细地分析GC行为。

  • 如果GC不是导致堆内存使用量增加的原因,则在应用程序中可能存在memory leak,即应用程序不再需要某个对象,但它仍然被其他对象引用,并且无法被GC回收。要检测此情况,请使用Eclipse Memory Analyzer等工具来分析内存转储

相关问题