[Tomcat] setenv.sh JVM옵션 설명

setenv.sh 파일 설정

setenv.sh 파일

setenv 쉘 파일은 tomcat 구동 시 읽어 들이는 실행 환경설정 파일입니다. 대부분의 시스템은 JVM 관련 옵션을 catalina.sh 파일을 수정하여 사용할 수 있지만, 이렇게 되면 톰캣 버전 업그레이드, 서버 이전 등의 작업에서 해당 파일이 변경될 수 있기 때문에 유지보수가 어려울 수 있습니다. 그렇기 때문에 bin 디렉토리 아래의 setenv.sh 환경변수 파일을 수정해서 JVM 관련 옵션을 수정할 수 있습니다.

 

JVM이란?

Java Virtual Machine으로 JAVA와 운영체제 사이의 중개자 역할을 수행합니다. 한정된 메모리에서 프로그램의 효율적인 성능을 내기 위해서 필요합니다.

 


JAVA_OPTS 등 환경 설정이 가능합니다. 여러 라인을 작성할 경우 역 슬래시(\)로 구분하여 작성할 수 있습니다.

 

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
Young Generation의 크기는 NewSize와 MaxNewSize 옵션에 의해 결정


-XX:PermSize=<Size> : Permanent Generation의 최소 size(시작 크기)
-XX:MaxPermSize=<Size> : Permanent Generation의 최대 size

 

Permanent Generation의 크기는 PermSize와 MaxPermSize 옵션에 의해 결정, 클래스 수가 많은 어플리케이션이라면 MaxPermSize를 크게 두어야 합니다.
Permanent Generation이 작아서 전체 클래스를 모두 로딩하지 못하면 Out of Memory Error가 발생


-XX:NewRatio=<Value> : Young Generation와 Old Generation의 영역비율
2로 설정할 경우 Young:Old = 1 : 2 가 된다. 전체 힙 중 Young Generation의 크기는 33%
-XX:SurvivorRatio=<Value> : Survivor Space와 Eden Space의 영역비율

댓글

Designed by JB FACTORY