在2c2g 2c4g 4c4g的机器上,实现高吞吐,低延迟,低停顿

162 阅读2分钟

为了实现高吞吐、低延迟和低停顿的目标,您可以根据不同的机器配置选择合适的垃圾回收器,并对其进行详细的参数设置。以下是针对不同机器配置的建议:

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 应用程序的性能。