Backend/Spring+Boot

SpringBoot 환경에서 JAVA_OPTS, TOMCAT_OPTS

findmypiece 2022. 2. 22. 00:47
728x90

외부 Tomcat 을 사용할 경우 구동시 추가할 실행옵션이 필요할 경우 JAVA_OPTS 또는 TOMCAT_OPTS 환경변수에 추가해 놓으면 실행시 자동으로 참조한다.

 

예를 들어 startup.sh 로 구동시 -Xmx256m 같은 메모리 설정을 추가하고 싶다면 환경변수 JAVA_OPTS 를 추가해서 -Xmx256m 를 등록해놓으면 된다.

 

기본적으로 구동시 JAVA_OPTS, TOMCAT_OPTS 를 모두 참조하기 때문에 하나만 정의해도 되지만 공식메뉴얼에서는 Java 관련된 설정값은 JAVA_OPTS 에 Tomcat 관련된 설정값은 TOMCAT_OPTS 에 설정하길 권장한다.

 

그런데 SpringBoot 내장톰캣에는 이게 적용되지 않는다. 기본적으로 아래와 같이 어플리케이션 구동시 command line 명령어로 추가해줘야 한다.

java -jar app.jar -Xmx256m

 

maven 과 gradle 같은 빌드툴에서 plugin으로 추가할 수 있는 방법도 있지만 이를 사용하려면 run 자체를 빌드툴로 해야 한다. 그런데 대부분 실무에서는 빌드환경과 실행환경이 분리되어 있고 실행환경에는 빌드툴을 설치하지 않기 때문에 크게 사용되지 않는다.

 

Kubernetes 환경은 어떨까? Kubernetes 를 사용할 경우 아래와 같이 ConfigMap으로  실행옵션을 관리할 수 있다.

apiVersion: v1
kind: ConfigMap
metadata:
  name: test-cm
data:
  SPRING_PROFILES_ACTIVE: sandbox
  JAVA_TOOL_OPTIONS: > 
    -Xmx256m

 

 

https://velog.io/@airoasis/Spring-Boot-서비스를-위한-Kubernetes-설정
https://kangwoo.kr/category/it/kubernetes/
https://oingdaddy.tistory.com/324
http://daplus.net/java-_java_options-java_tool_options-및-java_opts의-차이점/
728x90