RadarURL

웹서버,WAS
2016.03.23 02:30

Tomcat JVM heap memory set 및 size

조회 수 5408 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄
[Tomcat JVM heap memory set]
 
]# /etc/profile
export CATALINA_OPTS="-server -Xms256M -Xmx384M"
 
// 정말로 이옵션이 꼭 필요하지 않는이상 적용하지 말아야 합니다.
이 옵션은 힙사이즈를 늘려주는대신 GC 시간을 잡아먹기때문에

사용자수가 유독 많은 웹사이트의 경우 절대 추천하지 않습니다.


========================================================================

톰캣에 무거운 웹 어플리케이션을 돌리면서 오토 리로드 기능을 사용하다 보면 

2~3번은 정상적으로 되지만 그 이후부턴 PermGen space 라는 에러문구와 함께 톰캣이 뻗어버리는 현상이 발생한다.

그것을 예방하기 위해서는 톰캣폴더 하위에 있는 bin 폴더 밑에 catalina.sh 최상단에 아래 문구를 추가해주면 된다. 
 

# /usr/local/tomcat/bin
# vi ./catalina.sh

 
------------------------------------------------

JAVA_OPTS="-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
 
------------------------------------------------


  출처 - http://msgzoro.egloos.com/3264728

=
=======================================================================

Solr 1.4 Enterprise Search Server 에서는 solr 실행시 JVM의 memory 설정을 변경하기 위해서 다음과 같이 한다.
   "java -Xms512M -Xmx1024M -server -jar start.jar"

하지만 sevlet container로 Tomcat을 사용하는 경우
solr의 실행을 위와 같이 하지 않고, solr.war를 webapp에 넣은후 Tomcat을 start하면 자동으로 solr가 실행된다.
따라서 JVM의 설정의 위와같이 변경할 수 없다.
이런 경우에는 다음과 같이 변경하면 된다.

[방법1]
   1. $CATALINA_HOME/bin/catalina.bat 파일을 오픈한다.
   2. JAVA_OPTS를 찾는다.
   3. -Xms512m -Xmx1024m을 추가한다.

예를 들면, 다음과 같다.

set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties" 
-Xms512M -Xmx1024M


[방법2]
Tomcat을 시작하기 전에 CATALINA_OPTS 환경변수를 수정하는 것이다.
Unix의 경우에는 startup.sh scrip에 다음을 추가하면 된다.
export CATALINA_OPTS=-Xms512m -Xmx1024m;

* startup.sh은 catalina.sh를 호출한다.

[Reference]
http://www.coderanch.com/t/421341/Tomcat/change-JVM-setting-Xms-Xmx
http://www.informix-zone.com/node/46

 
 
 
 

Tomcat heap 사이즈 조절 및 메모리 튜닝

 

* Sun Microsystyems의 자바 HotSpot VM은 힙을 세 개의 영역으로 나누고 있다. 

 힙의 세 영역은 다음과 같다: 
 1) Permanent space: JVM 클래스와 메소드 개체를 위해 쓰인다. 
 2) Old object space: 만들어진지 좀 된 개체들을 위해 쓰인다. 
 3) New(young) object space: 새로 생성된 개체들을 위해 쓰인다.

 

<Heap layout 할당에 영향을 주는 스위치들 >


 

 *명령행 스위치 설명 
 

-Xms=[n]  최소 heap size 
 

-Xmx=[n]  최대 heap size 
 

-XX:PermSize=[n]  최소 perm size 
 

( JVM에서 OutOfMemoryError: PermGen space 에러가 자주 발생할 때
Heap 메모리가 부족하여 발생하는 줄 알고 -Xmx 옵션으로 늘려도 똑같이 발생.
원인은 PermSize 옵션 때문 .
PermSize는 JVM에서 사용하는 메타데이터에 대한 정보(즉 영구적으로 사용하는)에 대한 저장공간이다. 대표적인 예가 리플렉션에서 사용하는 클래스에 대한 정보들이다.
최근에 와서야 이런 오류가 자주 발생하는 이유는 Spring 프레임워크를 사용하기 때문이다. Spring 프레임워크에서는 AOP, DI 들을 지원하기 위해 많은 리플렉션 기능을 사용하고 Proxy를 이용하여 runtime에 클래스를 만들어 사용한다. 따라서 기존 방식에 비해 많은 메타데이터 저장공간이 필요하게 되었던 것이다.  )

 

 

 

-XX:MaxPermSize=[n]  최대 perm size 
 

-XX:NewSize=[n]  최소 new size 
 

-XX:MaxNewSize=[n]  최대 new size 
 

-XX:SurvivorRatio=[n]  New/survivor 영역 비율  
 

-XX:newratio=[n]  Old/new 영역 비율. HotSpot 클라이언트 VM은 8, HotSpot 서버 VM은 2. 
 

-XX:TargetSurvivorRatio=[n]  GC동안 비울 생존자 수용 가능량 퍼센티지 (capacity percentage.) 초기값은 50%

 

 

-XX:+HeapDumpOnOutOfMemoryError HeapDumpOnOutOfMemory 명령줄 옵션을 사용하면 Out Of Memory 오류 상태가 되었을 때 JVM이 Java 힙의 스냅샷을 덤프하게 됩니다. HeapDumpOnOutOfMemoryError 기능은 SDK 1.4.2.11 및 JDK 1.5.0.04와 함께 사용할 수 있습니다.

 

 

 

* New Generation 메모리 할당 공식 
   Eden = NewSize - ((NewSize/(SurvivorRatio + 2)) * 2) 
   From space = (NewSize - Eden)/2 
   To space = (NewSize - Eden)/2 
 

* Old Generation 메모리 할당 공식 
   Old = Xmx - MaxNewSize

 

* GC한 상태의 Heap메모리 정보출력 
jdk1.4에서 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC 

 

* 정적페이지가 많을 때 
-Xms418m -Xmx418m  
-XX:PermSize=1024m  
-XX:MaxPermSize=1024m  
-XX:NewSize=290m  
-XX:MaxNewSize=290m  
-XX:SurvivorRatio=3 

 

* 동적인 페이지가 많을 때 
-Xms1024m -Xmx1024m  
-XX:PermSize=128m  
-XX:MaxPermSize=128m  
-XX:NewSize=800m  
-XX:MaxNewSize=800m  
-XX:SurvivorRatio=4 

-Xms384m -Xmx384m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=3 

set CATALINA_OPTS=-Xms384m -Xmx384m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=3 
 

 

Xms: 최초 JVM 이 로드될 때 부여할 메모리
4 Xmx: 최대 JVM 이 가질 수 있는 메모리
5 MaxPermSize: JVM 내의 클래스 정보가 담길 최대 메모리

 

JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/tomcat/jvm_dump -Xms2048m -Xmx2048m -XX:PermSize=1024m -  XX:MaxPermSize=1024m"

 

 

========================================================================

export CATALINA_OPTS="-Djava.awt.headless=true -Xms512m -Xmx512m"

 

관련 URL : http://gnujava.com:8000/board/article_view.jsp?article_no=867&idx_notice=NOTICE_FLAG+DESC%2C&board_no=6

 

->윈도우/리눅스 heap size 설정

 

출처 : http://crowz.co.kr/250

TAG •
?

공부 게시판

공부에 도움되는 글을 올려주세요.

  1. No Image notice by 처누 2003/08/18 by 처누
    Views 2016374 

    [공지] 공부 게시판 입니다.

  2. ㅇㅇ병원, 당신의 건강을 책임지는 현명한 선택

  3. 양산싱크대막힘 시원하게 뚫는 비법

  4. 용인두피문신 고민? 만족 후기 보려면

  5. 토보샵: 명품레플리카 쇼핑의 시작

  6. 대전누수, 근본 원인 해결의 시작

  7. 마인드 끝판왕 사이즈까지 장착 완료! 010---8293---0291---- 여기가 베트남인줄 마블 노래클럽

  8. 카-툑 gusim8003 [24시문의] 선불유심내구제/내구제대출/소액대출/급전/ 비대면대출 상조내구제 무직자대출 대출

  9. 강남엘리트❤️OlO-8655-OO53❤️친절문의24시 강남하퍼1등실장 #강남엘리트 #강남엘리트위치 #강남엘리트하퍼 #하이퍼블릭엘리트 #강남엘리트예약문의 #선릉엘리트 #선릉역엘리트 #강남사라있네

  10. 청담동셔츠룸 010 2817 0845 일정과 인원에 맞춘 셔츠룸 문의

  11. 최근 테헤란로 벤처 밸리의 핵심 리더들 사이에서 ‘클래스가 다른 정통 수질과 프라이빗 무드’로 소문 자자한 '선릉 룸싸롱' 기습 방문, 인공미를 거부하는 무결점 뉴페이스들과 심장을 마비시킨 사심 플러팅에 제대로 저격당하고 온 솔직 후기

  12. 본식DVD, 웨딩영상 색감이 중요한 이유새 창 열림

  13. No Image new
    by 정열적인코요테90
    2026/10/05 by 정열적인코요테90
    in 공지
    Views 4 

    대전, 인천, 세종 하수구 막힘 문제 해결 방법

  14. No Image new
    by 타오르는드래곤61
    2026/10/05 by 타오르는드래곤61
    in 취미
    Views 1 

    <문경맥주> 구입 할 수 있는 곳은 새 창 열림

  15. 강남건전지❤️OlO-8655-OO53❤️친절문의환영 #강남건전지 #강남유니콘 #선릉유니콘 #강남건전지위치 #선릉역건전지#대치동유니콘 #강남바커스 #선릉바커스 #선릉역바커스 #강남룸클럽 #선릉룸클럽 #강남베터리 #강남바데리

  16. 용인두피문신 고민? 만족 후기 보려면

  17. 카­톡 gusim8003 급전/내구제 (24시문의) 폰테크 소액대출 선불폰 가개통

  18. 웨딩누브라, 완벽한 드레스 핏을 위한 선택

  19. 성공적인 중고화물차 선택, 현명한 가이드

  20. 인천맛집 순위

  21. 완벽한 웨딩드레스 핏의 비밀, 웨딩누브라

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 132 Next
/ 132


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너