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

use*_*514 0 garbage-collection java-8

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

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

我们已经看到,java8 应用程序的已用堆大小并没有在适当的时候缩小。

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

感谢您的帮助!

Gal*_*odi 5

上述选项具有以下效果:

-Xms、-Xmx:在堆大小上设置边界以提高垃圾收集的可预测性。副本服务器中的堆大小受到限制,因此即使 Full GC 也不会触发 SIP 重传。-Xms 设置起始大小以防止堆扩展引起的暂停。

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

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

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

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

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