2021. 9. 14. 10:57ㆍ개인노트
톰캣은 보통 설치형,비설치형 2가지로 분류된다.
설치,비설치 모두 해당 시작,종료,서비스등록 등을 위한 파일들이 기본적으로 내장되어있는데
ex) startup.sh , startup.bat , shutdown.sh ,shutdown.bat 로그확인용--> catalina.sh, catalina.bat
그리고 service등록을 위한 service.bat 등이 존재함
서비스에 등록해서 사용하는경우에는 톰캣에서 제공하는 GUI를 사용한 프로그램을 실행해서 사용하는경우가 있는데.
이와 같이 생김.
Start stop등을 명령어가 아닌 프로그램으로 사용할수있도록 bin폴더 내부에 exe파일이 존재함.
톰캣8버전 기준으로는 해당 이름이 tomcat8.exe, tomcat8w.exe인데 보통w가 붙은게 해당 GUI프로그램임.
윈도우용
##개인생각##
윈도우에서 명령어로 계속 실행,종료를 하기에는 cmd창을 가고 번거로우니 서비스 등록을 해두고 해당 서비스를 프로그램으로 시작,종료 관리하기 편하게 하는것같음.
리눅의계얼의 경우에는 명령어로 만들어두는 경우가 많음.
내가 유지보수하던 운영서버의 경우 bin 폴더내에 GUI담당하는 파일만 존재하고 서비스를 등록해서 사용하는부분만 있는경우가 있었는데
Tomcat에서 제공하는 윈도우 설치형 exe파일을 사용해서 설치한경우에 그렇게 기본세팅이 되어있었던듯함.
catalina.sh
톰캣의 catalina.sh 파일에는 다양한 설정이 존재한다. catalina.sh 파일에는 자바 옵션 설정 및 톰캣 로그 경로등 각종 설정을 저장할 수 있다. 이 때문에 설정 변경시 실수가 발생할 가능성이 높다.(유지보수에 큰 어려움 발생!). 만약 톰캣 버전이 업그레이드 되거나 서버 이전이 되는 경우 설정된 옵션을 반영하기 위해 조심히 추출해야한다. 그래서 추가 옵션을 설정하는 또다른 방법으로, 톰캣이 설치된 bin 디렉토리 하위의 setenv.sh 파일을 생성하고 추가 커스텀 옵션을 설정할 수 있다.
- CATALINA_OPTS : start, run, debug 명령어 구동 시 사용되는 자바 런타입 옵션에 해당한다. 톰캣 자체에서만 사용되는 옵션들만 포함되며 중지 프로세스, 버전 명령 등으로는 사용해서는 안된다.
- JAVA_OPTS : 명령이 실행될 때 사용되는 자바 런타임 옵션이다. 톰캣에 의해서 사용가능하고 중지 프로세스, 버전 명령에도 사용된다.
setenv.sh
setenv.sh은 tomcat 구동시 실행 환경 설정 파일이다. JAVA_OPTS 등 환경 설정이 가능하다. 멀티라인으로 작성할 경우 역슬래시를 통해 작성할 수 있다. 이 파일은 기본으로 제공되는 파일이 아니다. 직접 쉘 파일을 생성 및 작성해야한다.
export JAVA_OPTS="-Dspring.profiles.active=local \ |
-server \ |
-Xms2G \ |
-Xmx2G " |
- Dspring.profiles.active : 스프링에서 로컬 머신, 개발 테스트 서버, 상용 서버를 분리해서 속성을 설정하고 싶을 때 사용한다. local, dev 등
- server : Server HotSpot JVM을 사용하는 옵션입니다. Server HotSpot JVM은 Desktop용 Appkication을 구동하는데 유리하고, 최적화(Optimization)에 필요한 모든 과정을 최대한으로 수행합니다. Application의 시작시간은 느리지만, 일정 시간이 흐르면 Client HotSpot JVM에 비해 훨씬 뛰어난 성능을 보장합니다. (Jdk 1.5부터는 Server-Class머신인 경우에는 -server 옵션이 기본값이며, Server-Class머신이란 2장 이상의 CPU와 2G이상의 메모리를 갖춘 머신을 의미합니다.)
startup.sh 호출 -> catalina.sh 호출 -> setenv.sh 파일이 존재하는 경우 설정을 반영한다. documentation 들어가보면 다 나온다. 보는 습관을 들이자.
http://tomcat.apache.org/tomcat-8.5-doc/architecture/startup/serverStartup.txt
JVM 옵션 정보
- -Xms<Size> : 최소 Java Heap size. 최초 JVM이 로드될 때 부여되는 메모리이다(start size).
- -Xmx<Size> : 최대 Java Heap size. 최대 JVM이 가질 수 있는 메모리이다(maximum size).
- -XX:NewSize=<Value> : Young Generation의 최소 size(시작 크기)
- -XX:MaxNewSize=<Value> : Young Generation의 최대 size
- -XX:PermSize=<Size> : Permanent Generation의 최소 size(시작 크기)
- -XX:MaxPermSize=<Size> : Permanent Generation의 최대 size
- -XX:NewRatio=<Value> : Young Generation와 Old Generation의 영역비율
- -XX:SurvivorRatio=<Value> : Survivor Space와 Eden Space의 영역비율
Reference
톰캣 setenv.sh 옵션 설정 https://lucaskim.tistory.com/37
tomcat 구동 시 setenv.sh로 실행환경 설정하기 http://lionks80.blogspot.com/2015/01/tomcat-setenvsh.html
자바 애플리케이션 성능 튜닝의 도(道) https://d2.naver.com/helloworld/184615
'개인노트' 카테고리의 다른 글
Egov(전자정부프레임워크) Pagination(페이징)추가하는법 (0) | 2021.09.15 |
---|---|
Http통신 구방식 (0) | 2021.09.15 |
Hosts파일 수정 편하게 하기 (0) | 2021.09.15 |
서버에 파일을 반영할때! (0) | 2021.09.14 |
CentOs Hosts파일 수정! (0) | 2021.09.13 |