为了实现高吞吐、低延迟和低停顿的目标,您可以根据不同的机器配置选择合适的垃圾回收器,并对其进行详细的参数设置。以下是针对不同机器配置的建议:
2核2GB:
在资源有限的情况下,推荐使用 G1 GC,并进行适当的参数配置:
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:InitiatingHeapOccupancyPercent=30 \
-XX:ParallelGCThreads=2 \
-XX:ConcGCThreads=2 \
-XX:G1NewSizePercent=20 \
-XX:G1MaxNewSizePercent=50 \
-XX:G1HeapRegionSize=8m \
-XX:SurvivorRatio=8 \
-Xms1g -Xmx1g
2核4GB:
对于稍大一些的机器,仍然建议使用 G1 GC,并进行更进一步的参数配置:
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=100 \
-XX:InitiatingHeapOccupancyPercent=20 \
-XX:ParallelGCThreads=4 \
-XX:ConcGCThreads=4 \
-XX:G1NewSizePercent=15 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=16m \
-XX:SurvivorRatio=8 \
-Xms2g -Xmx2g
4核4GB:
在资源更为充足的情况下,可以进一步优化参数设置,以达到更高的性能:
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=50 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:ParallelGCThreads=4 \
-XX:ConcGCThreads=4 \
-XX:G1NewSizePercent=10 \
-XX:G1MaxNewSizePercent=30 \
-XX:G1HeapRegionSize=32m \
-XX:SurvivorRatio=8 \
-Xms4g -Xmx4g
参数说明:
-XX:+UseG1GC:启用 G1 GC。-XX:MaxGCPauseMillis:设置最大 GC 停顿时间目标,以毫秒为单位。-XX:InitiatingHeapOccupancyPercent:设置并发标记周期的启动堆占用率阈值。-XX:ParallelGCThreads和-XX:ConcGCThreads:设置并行 GC 线程数和并发 GC 线程数。-XX:G1NewSizePercent和-XX:G1MaxNewSizePercent:设置新生代最小和最大占堆空间的百分比。-XX:G1HeapRegionSize:设置 G1 堆区域大小。-XX:SurvivorRatio:设置新生代 Eden 区和 Survivor 区的大小比例。-Xms和-Xmx:设置堆的初始大小和最大大小,以适应机器的内存配置。
根据具体情况调整参数,可以在保证高吞吐、低延迟和低停顿的前提下,最大化 Java 应用程序的性能。