티스토리 뷰
.
$TOMCAT_HOME/bin/catalina.sh 에서 CATALINA_OPTS를 수정
.
1. OOM(OutOfMemory) 처리(힙덤프 생성 및 톰캣 핸들링)
-XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./java_pid<pid>.hprof
-XX:OnOutOfMemoryError=$CATALINA_HOME/bin/restart.sh (혹은 stop.sh)
.
2. GC Thread 옵션
- GC에 대한 Thread 수를 정해야 하는데, 이 Thread수는 전체 CPU Core수 보다 적어야 하고, 2~4개 정도가 적당하다.
-XX:ParallelGCThreads=2 -XX:-UseConcMarkSweepGC
.
3. GC 로그 옵션
GC 로그는 되도록 자세하게 추출할 필요가 있다. GC로그를 상세하게 걸어도 성능 저하는 거의 없다.
-XX:-PrintGC -XX:-PrintGCDetails -XX:-PrintGCTimeStamps -XX:-TraceClassUnloading -XX:-TraceClassLoading
마지막에 적용된 TraceClassLoading은 클래스가 로딩되는 순간에 로그를 남겨준다. 일반적으로는 사용하지 않아도 되나, OutOfMemory 에러 발생시 Object가 아니라 class에서 발생하는 경우는 Heap dump로는 분석이 불가능 하기 때문에, Out Of Memory 에러시 같이 사용하면 좋다.
출처 http://bcho.tistory.com/788
<restart.sh>
#!/bin/bash
#
# tomcat This shell script takes care of starting and stopping Tomcat
#
# chkconfig: - 80 20
#
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start:
# Default-Stop:
# Short-Description: start and stop tomcat
### END INIT INFO
TOMCAT_USER=irteam
TOMCAT_HOME="/home1/irteam/apps/tomcat"
SHUTDOWN_WAIT=45
tomcat_pid() {
echo `ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }'`
}
start() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is already running (pid: $pid)"
else
# Start tomcat
echo "Starting tomcat"
cd $TOMCAT_HOME/bin && $TOMCAT_HOME/bin/startup.sh
fi
return 0
}
stop() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Stoping Tomcat"
cd $TOMCAT_HOME/bin && $TOMCAT_HOME/bin/shutdown.sh
let kwait=$SHUTDOWN_WAIT
count=0
count_by=5
until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
do
echo "Waiting for processes to exit. Timeout before we kill the pid: ${count}/${kwait}"
sleep $count_by
let count=$count+$count_by;
done
if [ $count -gt $kwait ]; then
echo "Killing processes which didn't stop after $SHUTDOWN_WAIT seconds"
kill -9 $pid
fi
else
echo "Tomcat is not running"
fi
return 0
}
stop
start
exit 0
.
.
.
'공부 > Java, JSP' 카테고리의 다른 글
http 파라미터에 한글 쓰기 (0) | 2014.07.29 |
---|---|
[JSTL] foreach / status (0) | 2014.05.26 |
[JSTL] contains (0) | 2014.04.20 |
InputStream - String 변환유틸 - org.apache.commons.io.IOUtils (0) | 2014.04.03 |
XML - Object 변환 라이브러리 XStream (0) | 2014.04.03 |