달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2012. 12. 11. 10:40

tomcat 메모리 CATALINA_OPTS 설정 Enjoy/JSP2012. 12. 11. 10:40

tomcat 에 힙사이즈 설정


catalina.sh 파일에 아래 내용 추가


export CATALINA_OPTS="-Djava.awt.headless=true -server -Xms2048m -Xmx2048m -Xmn1024m

                      -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m 

                      -XX:+UseParNewGC -XX:+UseConcMarkSweepGC

                      -XX:SurvivorRatio=4 -XX:+PrintHeapAtGC -XX:+HeapDumpOnOutOfMemoryError"


  • CATALINA_OPTS="-server -Xss256k -Xms256m -Xmx512m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:MaxPermSize=128m -XX:SurvivorRatio=5 -XX:ReservedCodeCacheSize=128m -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true "

-Xmx1024m -Xms1024m -XX:MaxNewSize=384m -XX:MaxPermSize=128m

힙덤프

-XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./java_pid<pid>.hprof

GC 옵션

-XX:ParallelGCThreads=2 -XX:-UseConcMarkSweepGC

GC 로그 옵션

-XX:-PrintGC -XX:-PrintGCDetails -XX:-PrintGCTimeStamps -XX:-TraceClassUnloading -XX:-TraceClassLoading

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CATALINA_BASE/logs




http://helloworld.naver.com/helloworld/184615

표 3 모니터링 후 옵션변경 예시

종류

옵션

동작 모드

-sever

전체 힙 크기

-Xms와 –Xmx의 값을 같게

New 영역 크기

-XX:NewRatio

2~4 정도의 값

-XX:NewSize=? –XX:MaxNewSize=?

NewRatio 대신 NewSize를 지정하는 것도 좋다.

Perm 크기

-XX:PermSize=256m

-XX:MaxPermSize=256m

성능에 영향을 미치지 않으므로 동작에 문제가 없을 정도만 지정한다.

GC 로그

-Xloggc:$CATALINA_BASE/logs/gc.log

-XX:+PrintGCDetails

-XX:+PrintGCDateStamps

GC로그를 남기는 것은 특별히 Java 애플리케이션 수행 성능에 영향을 미치지 않는다. 가급적이면 GC 로그를 남기는 것이 좋다.

GC 알고리즘

-XX:+UseParNewGC

-XX:+CMSParallelRemarkEnabled

-XX:+UseConcMarkSweepGC

-XX:CMSInitiatingOccupancyFraction=75

일반적으로 권할만한 설정일 뿐이다. 애플리케이션 특성에 따라 다른 선택이 더 좋을 수 있다.

OOM 에러 발생 시 힙 덤프 생성

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CATALINA_BASE/logs

OOM 발생 이후 조치

-XX:OnOutOfMemoryError=$CATALINA_HOME/bin/stop.sh

또는

-XX:OnOutOfMemoryError=$CATALINA_HOME/bin/restart.sh

힙 덤프를 남긴 뒤, 관리 정책에 맞게 적합한 동작을 취할 수 있도록 한다.





:
Posted by 라면스프