Tomcat 인스턴스와 JVM 옵션
4. 응용 변형 예제
4.1 세 번째 인스턴스 추가
make_dirs app3, make_server_xml app3 8280 8205, make_setenv app3 256m 세 줄만 추가하면 포트가 겹치지 않는 새 인스턴스가 생깁니다. 함수화해둔 덕분에 복붙 실수가 줄어듭니다.
4.2 인스턴스별 로그 레벨 다르게
conf/logging.properties 의 .level 을 개발계 인스턴스만 FINE 으로 낮춰 상세 로그를 남기고, 운영 인스턴스는 INFO 를 유지합니다. 같은 CATALINA_HOME 을 공유해도 인스턴스별로 다르게 설정할 수 있습니다.
4.3 인스턴스 단위로만 재시작
systemctl restart tomcat@app1 은 app1 만 내렸다 올리고 app2 는 그대로 서비스 중입니다. 실행 파일을 공유해도 인스턴스는 완전히 독립된 프로세스입니다.
4.4 여러 앱이 DataSource 하나를 공유
DataSource 를 CATALINA_HOME/conf/context.xml 의 GlobalNamingResources 에 한 번 선언하고, 각 앱의 context.xml 에서 ResourceLink 로 참조하면 커넥션 풀을 인스턴스 간에 나눠 쓸 수 있습니다.
4.5 컨테이너 환경에서는 비율 지정
컨테이너처럼 메모리 상한이 자주 바뀌는 환경에서는 -Xmx 고정값 대신 -XX:MaxRAMPercentage=75.0 을 쓰면 컨테이너 메모리 한도에 맞춰 힙이 자동으로 정해집니다.