1)我们的应用程序: Spring,Java 8
2)我们使用的参数: xms = 256 MB,xmx =2 GB
我们已经看到,我们的java8应用程序使用的堆大小不会在适当的时候缩小。
在启动spring /Java 8应用程序时,我们应该与上面的#2一起使用其他参数,这样GC才能做得更好吗?
谢谢你的帮忙!
发布于 2017-12-01 07:25:47
上述备选办法的效果如下:
-Xms,-Xmx:在堆大小上设置边界,以提高垃圾收集的可预测性。堆大小在副本服务器中是有限的,因此即使是完整的GCs也不会触发SIP重传。-Xms设置起始大小以防止堆扩展导致的暂停。
-XX:+UseG1GC:使用垃圾优先(G1)收集器。
-XX:MaxGCPauseMillis:为最大GC暂停时间设置一个目标。这是一个软目标,JVM将尽最大努力来实现它。
-XX:ParallelGCThreads:设置垃圾收集器并行阶段使用的线程数。缺省值随运行JVM的平台而变化。
并发垃圾收集器将使用的-XX:ConcGCThreads:线程数。缺省值随运行JVM的平台而变化。
启动并发GC周期的(整个)堆占用率的-XX:InitiatingHeapOccupancyPercent:百分比。GCs基于整个堆的占用率触发并发GC周期,而不仅仅是其中一个代(包括G1 )使用此选项。值0表示“do常量GC循环”。默认值为45。
发布于 2020-07-25 18:46:59
Oracle提供内置的Java VisualIVM工具来分析和优化GC因素
https://stackoverflow.com/questions/47477751
复制相似问题