사용자 도구

사이트 도구


java:g1gc

Java G1 GC

기본 설정

-XX:+UseG1GC -XX:+DisableExplicitGC -XX:+UseStringDeduplication
  • -XX:MaxGCPauseMillis=밀리세컨드 default=200ms
  • -XX:G1HeapRegionSize=숫자m 보통은 Heap size 기준으로 2018개로 리젼을 나누면서 사이즈가 1mb~32mb 되도록 최선으로 결정되지만 사용하는 데이터 종류에 따라 직접 지정가능. 2의 제곱으로 지정할 것.
  • -XX:ParallelGCThreads=숫자
  • -XX:ConcGCThreads=숫자
  • -XX:+UseStringDeduplication : 불필요한 문자열 중복 생성 방지 G1 에서만 기능함 G1 GC: Reducing Memory Consumption by 20%

Java 8 Metaspace Class Unloading

JDK 8 G1 GC에서는 class 영역이 클 경우 class unloading을 하는 gc 시간이 매우 길어질 수 있다. 다음 옵션으로 대부분 문제가 없어진다. 매우 오래전 기록이므로 최신 JVM에서 불필요하게 미리 설정하지 말 것.

-XX:+UseLargePagesInMetaspace

주의

  • -Xmn-XX:NewRation는 사용하지 말 것.
    • Young Generation Size: Avoid explicitly setting young generation size with the -Xmn option or any or other related option such as -XX:NewRatio. Fixing the size of the young generation overrides the target pause-time goal.

참조

java/g1gc.txt · 마지막으로 수정됨: 2022/03/18 15:37 저자 kwon37xi