Blog / Java/Kotlin / Java Application Deploy Command

Java Application Deploy Command

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
bash
/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
Written by
author
풍우래기

여행을 좋아하는 집돌이 개발자입니다.

블로그에 새로운 글이 발행되었습니다.