1. JVM Options
| JVM Option |
Value |
Description |
-jar |
|
|
-server |
|
|
-Dspring.profiles.active |
dev / qas / prod |
운영환경 |
-Dlogging.file.name |
/logs/application/application.log |
애플리케이션 로그 파일 경로 |
-Xms2048m |
2G |
최소 Heap Size (애플리케이션 복수 탑재 시 적용) |
-Xmx3072m |
3G |
최대 Heap Size (애플리케이션 복수 탑재 시 적용) |
-XX:SoftMaxHeapSize |
2560m |
Heap Size 소프트 제한 |
-XX:InitialRAMPercentage |
50.0 |
최소 메모리 Percentage (애플리케이션 단독 탑재 시 적용) |
-XX:MaxRAMPercentage |
50.0 |
최대 메모리 Percentage (애플리케이션 단독 탑재 시 적용) |
-XX:MetaspaceSize |
512m |
Heap Size의 1/4로 설정 (권장값) |
-XX:MaxMetaspaceSize |
768m |
Heap Size의 1/4로 설정 (권장값) |
-XX:+UseStringDeduplication |
|
String 문자열 중복 제거 (Shenandoah GC 미지원, Z GC는 JDK 18부터 지원) |
-XX:+UseZGC |
|
Z Garbage Collector 사용 |
-XX:+ZGenerational |
|
Generational Z GC 적용 (JEP 439) |
-XX:+PrintGC |
|
이벤트가 발생할 때 GC 로깅 정보 출력 |
-Xlog:gc:file |
/logs/application/gc_application.log:utctime,pid,level,tags:filecount=3,filesize=100m |
GC 로그 적용 |
-XX:+HeapDumpOnOutOfMemoryError |
|
OutOfMemoryError 발생 시 Heap Dump 생성 |
-XX:HeapDumpPath |
/logs/application/heapdump_application |
Heap Dump 경로 |
2. Deploy Command
/usr/lib/jvm/java-21-openjdk/bin/java -jar -server \
-Dspring.profiles.active=prod \
-Dlogging.file.name=/logs/application/application.log \
-Xms2048m \
-Xmx3072m \
-XX:SoftMaxHeapSize=2560m \
-XX:MetaspaceSize=512m \
-XX:MaxMetaspaceSize=768m \
-XX:+UseStringDeduplication \
-XX:+UseZGC \
-XX:+ZGenerational \
-XX:+PrintGC \
-Xlog:gc:file=/logs/application/gc_application.log:utctime,pid,level,tags:filecount=3,filesize=100m \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/logs/application/heapdump_application \
/lges-app/application.jar