Linux
vim catalina.sh
> JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx512m -XX:MaxPermSize=128m"
Xms: 최초 JVM 이 로드될 때 부여할 메모리
Xmx: 최대 JVM 이 가질 수 있는 메모리
MaxPermSize: JVM 내의 클래스 정보가 담길 최대 메모리
Windows
catalina.bat
> set JAVA_OPTS=-server -Xms2G -Xmx2G -XX:MaxPermSize=2G
(큰따옴표가 들어가지 않음. 유닉스 계열만 큰따옴표가 들어감)
메모리 계산방식
어플리케이션 서버에서 필요한 메모리 계산 방법
- 계산식 : (MaxProcessMemory - JVMMemory - ReservedOsMemory) / (ThreadStackSize) = Number of threads
- 메모리 계산 예
가정 : Java 1.5를 사용중이며 OS가 120MB를, 디폴트 스택사이즈는 0.5M
JVM에 1.5GB할당되었을 경우 : (2GB-1.5Gb-120MB)/(1MB) = ~380 threads
JVM에 1.0GB할당되었을 경우 : (2GB-1.0Gb-120MB)/(1MB) = ~880 threads
통계적으로 대략 200명의 동시 사용자 수용할 경우 300MB정도 필요합니다.
이것을 고려해서 메모리를 계산하면 됩니다.
JVM 옵션 정보
-Xms : 최소 힙 싸이즈
-Xmx : 최대 힙 싸이즈
-XX:NewSize : New Generation의 최소 싸이즈
-XX:MaxNewSize : New Generation의 최대 싸이즈
-XX:MaxPermSize : Permanent Generation의 최대 싸이즈 가 되겠다.
-XX:SurvivorRatio : 영역비율(New Generation)
참고
http://oracle.tistory.com/434
http://blog.naver.com/PostView.nhn?blogId=moonv11&logNo=60197874655
한글 JVM 문서
http://wiki.ex-em.com/index.php/JVM_Options
'Web Server, WAS > Tomcat' 카테고리의 다른 글
Tomcat 로그 관리 (logrotate.d) (0) | 2017.07.06 |
---|---|
Tomcat bash, bat JAVA_HOME 설정 (2) | 2014.03.26 |
Tomcat 원격 디버깅 (0) | 2011.03.30 |
Virtual Hosting and Tomcat Server.xml crossContext,, Muiltple (0) | 2010.06.28 |