./categories/back-end
Java GC 튜닝
Oracle HotSpot GC Tuning Guide 요약 (Java 8~17).
기본 수집기
| Java | 기본 GC |
|---|---|
| 8 | Parallel GC |
| 9+ | G1 GC |
수집기 선택
-XX:+UseSerialGC
-XX:+UseParallelGC
-XX:+UseConcMarkSweepGC # Java 8 CMS (9+ deprecated)
-XX:+UseG1GC
-XX:+UseZGC # 11+
-XX:+UseShenandoahGC
Heap
-Xms<size> -Xmx<size>
-XX:NewRatio=<n>
-XX:SurvivorRatio=<n>
-XX:MetaspaceSize=<size> -XX:MaxMetaspaceSize=<size>
G1
-XX:MaxGCPauseMillis=<ms>
-XX:G1HeapRegionSize=<size>
-XX:InitiatingHeapOccupancyPercent=<pct>
GC 로그
# Java 8
-XX:+PrintGCDetails -Xloggc:gc.log -XX:+UseGCLogFileRotation \
-XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M
# Java 9+
-Xlog:gc*:file=gc.log:time,uptime,level,tags:filecount=10,filesize=10M
OOM 덤프
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/path/heap.hprof
관련 링크: https://johngrib.github.io/wiki/java/gc/tuning-guide/
./comments