본문 바로가기

CS study/Linux

[tomcat] catalina.sh (difference between java_opts and catalina_opts)

목차

     

    [Backup 240124]

     

    톰캣 내부에 agent 모델을 심을 일이 있었는데, catalina.sh(envset.sh) 안에 코드에서 궁금한 점이 있었다.

     

    1. CATALINA_OPTS 사용
    CATALINA_OPTS="$CATALINA_OPTS -javaagent:[scouter agent 경로]/scouter.agent.jar"
    export CATALINA_OPTS
    
    
    2. JAVA_OPTS 사용
    #Scouter Agent Setting
    SCOUTER_AGENT_DIR=""
    COLLECTOR_SERVER_IP="192.168.56.1"
    export JAVA_OPTS="$JAVA_OPTS -javaagent:${SCOUTER_AGENT_DIR}/scouter.agent.jar"
    export JAVA_OPTS="$JAVA_OPTS -Dscouter.config=${SCOUTER_AGENT_DIR}/conf/scouter.conf"
    export JAVA_OPTS="$JAVA_OPTS -Dnet_collector_ip=${COLLECTOR_SERVER_IP}"

     

    분명 두 변수가 유사할 것이라고 생각했는데, 확실히 알고자 검색을 통해 확인한 내용을 정리하였다.

     

    JAVA_OPTS applies to all the running Tomcat instances, whereas CATALINA_OPTS works only on a single Tomcat instance.

    JAVA_OPTS 의 모든 변경 사항은 실행 중인 모든 Tomcat 인스턴스에 적용되는 반면 CATALINA_OPTS는 단일 Tomcat 인스턴스에서만 작동한다는 것이 주요 차이이다.

    즉, JAVA_OPTS를 사용하여 동일한 JVM에서 실행되는 모든 Tomcat 인스턴스에 대한 전역 JVM 구성을 설정할 수 있다.

     

    1. CATALINA_OPTS 사용
      • CATALINA_OPTS는 Tomcat 서버 시작 시에만 사용되는 환경 변수이다.
      • 주로 서버의 성능 관련 옵션(메모리 설정, Java Agent 설정 등)을 지정하는 데 사용된다.
      • 이 변수를 사용하면 Tomcat이 시작될 때만 옵션이 적용되고, 다른 Tomcat 유틸리티에서는 영향을 받지 않는다.
    2. JAVA_OPTS 사용
      • JAVA_OPTS는 Tomcat 뿐만 아니라 JVM이 시작할 때마다 적용되는 환경 변수이다.
      • 이 변수는 Tomcat과 관련된 모든 Java 프로세스(예: shutdown hooks, JSP 컴파일러)에 영향을 미친다.
      • 따라서 서버 성능과 직접적으로 관련된 옵션보다는 JVM 성능과 관련된 일반적인 설정에 사용된다.

     

    CATALINA_OPTS는 Tomcat 서버 자체에만 영향을 주는 반면, JAVA_OPTS는 Tomcat과 관련된 모든 Java 애플리케이션에 영향을 준다는 것이 주요 차이점이다.

     

     

     

    참조

    https://typing-has-no-ear.tistory.com/24

     

    JAVA_OPTS, JVM memory, HotSpot JVM 에 대하여

    Java, OutOfMemoryhttp://layered.tistory.com/entry/%EB%B2%88%EC%97%AD-javalangOutOfMemoryError-PermGen-space%EB%8A%94-%EC%99%9C-%EB%B0%9C%EC%83%9D%ED%95%98%EB%82%98Java, about PermGenhttps://blogs.oracle.com/jonthecollector/presenting-the-permanent-generati

    typing-has-no-ear.tistory.com

     

    https://www.baeldung.com/tomcat-catalina_opts-vs-java_opts

     

    https://stackoverflow.com/questions/11222365/catalina-opts-vs-java-opts-what-is-the-difference

     

    CATALINA_OPTS vs JAVA_OPTS - What is the difference?

    I was trying to find out the difference between Apache Tomcat variables - CATALINA_OPTS and JAVA_OPTS in SO and surprised to see that there is no question/answer posted here yet. So I thought of s...

    stackoverflow.com