JVM

JVM-03丨G1垃圾收集器参数

Posted by jiefang on October 28, 2019

G1垃圾收集器参数


G1垃圾收集器通用参数设置

  • -Xms4096M
  • -Xmx4096M
  • -Xss1M
  • -XX:MetaspaceSize=256M
  • -XX:MaxMetaspaceSize=256M
  • -XX:+UseG1GC
  • -XX:MaxGCPauseMillis=200ms
  • -XX:InitiatingHeapOccupancyPercent=60
  • -XX:G1HeapRegionSize=2m
  • -XX:+PrintGCDetails
  • -XX:+PrintGCTimeStamps
  • -Xloggc:gc.log

-XX:+UseG1GC

采用 Garbage First (G1) 收集器。

-XX:MaxGCPauseMillis=n

设置最大GC 暂停时间。这是一个大概值,JVM 会尽可能的满足此值。

-XX:InitiatingHeapOccupancyPercent=n

设置触发标记周期的 Java 堆占用率阈值。默认占用率是整个 Java 堆的 45%。默认值 45。

-XX:ParallelGCThreads=n

设置在垃圾回收器的STW期间,并行GC线程数。

-XX:ConcGCThreads=n

并发垃圾收集器在并发标记阶段,并行执行的线程数。

-XX:G1ReservePercent=n

设置作为空闲空间的预留内存百分比以降低晋升失败的可能性。默认值10。

-XX:G1HeapRegionSize=n

使用G1,Java堆被划分为大小均匀的区域。这个参数配置各个子区域的大小。此参数的默认值根据堆大小的人工进行确定。最小值为 1Mb 且最大值为 32Mb。

-XX:G1PrintRegionLivenessInfo

默认值false, 在情理阶段的并发标记环节,输出堆中的所有 regions 的活跃度信息。

-XX:G1PrintHeapRegions

默认值false, G1 将输出那些 regions 被分配和回收的信息。

-XX:+PrintSafepointStatistics

查看JVM SafePoint行为,输出具体的停顿原因。

-XX: PrintSafepointStatisticsCount=1

查看JVM SafePoint行为,输出具体的停顿原因。

-XX:+PrintGCApplicationStoppedTime

停顿时间输出到GC日志中。

-XX:-UseBiasedLocking

取消偏向锁。

-XX:+UseGCLogFileRotation

开启滚动日志输出,避免内存被浪费。

-XX:+PerfDisableSharedMem

关闭 jstat 性能统计输出特性,使用 jmx 代替。