Tomcat을 리눅스 서버에 설치할 때 많이 간과하는 부분이 바로 setenv.sh를 통한 JVM 메모리 설정인데요. 특히 서버에 Tomcat 인스턴스를 여러 개 설치하는 경우, 이 설정은 단순한 성능 튜닝을 넘어 서버 안정성 확보에 필수적인 요소가 됩니다.
setenv.sh란?
Tomcat은 실행 시 내부적으로 JVM을 구동합니다. 이때 사용하는 자바 힙 메모리 크기를 설정하지 않으면, JVM은 기본값을 사용하게 되는데요, 이 기본값은 사용하는 JDK 버전과 서버 환경에 따라 달라집니다.
JDK 버전에 따른 기본 메모리 동작
- JDK 8 (HotSpot 기준)
- Xms(초기 힙): 약 256MB
- Xmx(최대 힙): 최대 1~4GB
- 기본적으로 전체 시스템 메모리의 25% 수준까지 사용 가능합니다
- JDK 11 이상
- JVM이 자동으로 메모리와 CPU 개수를 감지하여 설정합니다
- Xmx는 전체 메모리의 약 25%로 잡힙니다
- 하지만 여러 인스턴스가 동시 실행되면 자원 경합 위험이 증가합니다
Tomcat 인스턴스 수와의 관계
서버에 Tomcat을 4개 설치하고 setenv.sh 설정 없이 운영하면, 각 인스턴스가 JVM 기본값을 기준으로 최대 4GB까지 메모리를 사용할 수 있습니다. 이 경우 16GB 메모리의 대부분을 차지하게 되어, 서버 전체가 느려지거나 충돌이 발생할 수 있어요.
해결 방법: setenv.sh로 명시 설정
각 Tomcat 인스턴스의 bin/ 디렉터리에 아래와 같이 setenv.sh 파일을 추가해주세요:
#!/bin/bash
export JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"
- Xms: 초기 힙 메모리
- Xmx: 최대 힙 메모리
- UseG1GC: GC 성능 최적화
이렇게 명시적으로 설정하면, Tomcat 간 자원 충돌을 막고 예측 가능한 운영이 가능합니다.
JDK 버전별 추천 설정값 예시
JDK 버전 서버 메모리 추천 Xms 추천 Xmx
JDK 8 | 16GB | 512MB | 1024MB |
JDK 11 | 16GB | 1GB | 2GB |
JDK 17+ | 16GB | 1GB | 2~3GB |
Tomcat 인스턴스가 많아질수록 Xmx 값을 더 낮게 분배하는 것이 안정적입니다.
마무리하며
Tomcat 설치 시 setenv.sh 설정은 선택이 아닌 필수입니다. 특히 다중 인스턴스를 운영하거나 고부하 환경이라면, JVM 메모리 설정이 서버 안정성과 직결됩니다.
지금 운영 중인 Tomcat에 setenv.sh가 없다면, 오늘 바로 설정해보시는 걸 추천드립니다.
반응형
'TIP ::' 카테고리의 다른 글
JMeter 성능테스트/부하테스트 결과보고서 (0) | 2024.07.15 |
---|---|
JSESSIONID 취약점 조치방안 (0) | 2023.02.24 |
카멜리나 오일 다이어트 효능 섭취방법 및 주의사항 (0) | 2022.06.24 |
혈관 건강을 위한 혈당 낮추는 과일섭취 방법 (0) | 2022.06.24 |
차전자피 유산균 / 식이섬유가 풍부한 식품 (0) | 2022.06.23 |
댓글