origoni's Blog from Millky

origoni의 스프링 블로그 입니다.

자바(톰켓)로 대형 웹 서비스를 돌릴때 OutOfMemoryError

 

하루 유니크 방문자가 10만명을 훌적 넘는 서비스(한달 방문자 100만 이상)가 되면

엄청난 트래픽을 감당하기 위해 서버 튜닝 부분도 신경을 많이 써야 하는 부분이다.

 

거기에 시간이 지나면서 사용자만 늘어나는것이 아니라...

서비스의 기능은 불어나고..

소스코드 튜닝 시간이 없고 바로 다음 기능을 만들어야 하는 일도 생긴다 ㅠ

 

코드는 무거워지고.. 사용자는 많아지고......

분산분산 하지만 서버 늘리는데는 한계가 있고... (가상 없을땐 어찌 했더라?;;;)

그러다가 만나게 되는 java.lang.OutOfMemoryError ㅠㅠ

 

 

그럼 결국 하는일이... 급하니까... 하드웨어로 ㅋ

사실 처음 회사 왔을때만해도. 웹서버가 후달려서 ㅋㅋ

그런데 요즘 웹서버들은 뭐 빵빵하자나 ㅎㅎ

 

톰켓에 메모리를 많이 할당해주자!

 

가상 서버로 2GB 메모리 할당한 서버에 이렇게 설정하였다.

 

vi /etc/profile

 

export JAVA_OPTS="-Xms512m -Xmx1536m -XX:MaxPermSize=256m"

 

 

이후 톰켓을 재시작하면 JAVA_OPTS를 추가적을 읽어드려 동작한다고 한다.

       

origoni 2014-06-18 00:04:04

vi /web/tomcat/bin/startup.sh

...
done

export CATALINA_OPTS="-Dspring.profiles.active=prod -Xms256m -Xmx768m"

PRGDIR=`dirname "$PRG"`
EXECUTABLE=catalina.sh
...
back to top