Java 8应用程序的垃圾收集调整

时间:2017-11-24 17:21:23

标签: java-8 garbage-collection

1)我们的应用程序:Spring boot,Java 8

2)我们使用的参数:xms = 256 MB,xmx = 2 GB

我们已经看到java8应用程序的已用堆大小在适当时不会缩减。

在启动Spring Boot / Java 8应用程序时,我们应该与上面的#2一起使用的任何其他参数,以便GC可以做得更好?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

以上选项具有以下效果:

-Xms,-Xmx :在堆大小上放置边界以增加垃圾收集的可预测性。副本服务器中的堆大小有限,因此即使是Full GCs也不会触发SIP重新传输。 -Xms设置起始大小以防止堆扩展导致的暂停。

-XX:+ UseG1GC :使用垃圾优先(G1)收集器。

-XX:MaxGCPauseMillis :设置最大GC暂停时间的目标。这是一个软目标,JVM将尽最大努力实现它。

-XX:ParallelGCThreads :设置垃圾收集器并行阶段使用的线程数。默认值因运行JVM的平台而异。

-XX:ConcGCThreads :并发垃圾收集器将使用的线程数。默认值因运行JVM的平台而异。

-XX:InitiatingHeapOccupancyPercent :启动并发GC周期的(整个)堆占用百分比。基于整个堆的占用而不仅仅是其中一代(包括G1)触发并发GC循环的GC使用此选项。值为0表示进行恒定的GC循环'。默认值为45。

答案 1 :(得分:0)

Oracle JDK提供了内置的Java VisualIVM工具来分析和调整GC因素