[ERROR] Out of memory 오류
톰캣 기반에서 시스템을 운영 중에 아래와 같은 에러가 발생하였다.
javax.servlet.ServletException: PermGen space
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:300)
at jcf.web.action.BaseAction.execute(BaseAction.java:101)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
GC의 Perm 영역의 메모리가 부족하다는 오류이다.
Tomcat에 설치된 Probe를 통해서 GC 사용현황을 분석해 보니 PermGen 영역이 부족함을
알수 있었다.
Java의 메모리 영역은 앞에서 이야기한 두 영역 (Young 영역,Old 영역)과 Perm 영역 이렇게 3가지로 영역으로 구성된다.
PermGen은 Perm 영역을 말한다.
Perm 영역을 늘려주기 위해서는 -XX:MaxPermSize 옵션을 이용하며
아래는 톰캣에 설정한 예이다.
set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx512m -XX:MaxPermSize=128m
*참조: JVM GC와 메모리 튜닝(조대협)
http://www.j2eestudy.co.kr/lecture/lecture_read.jsp?db=lecture0401_1&table=j2ee&id=1
javax.servlet.ServletException: PermGen space
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:300)
at jcf.web.action.BaseAction.execute(BaseAction.java:101)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
GC의 Perm 영역의 메모리가 부족하다는 오류이다.
Tomcat에 설치된 Probe를 통해서 GC 사용현황을 분석해 보니 PermGen 영역이 부족함을
알수 있었다.
Java의 메모리 영역은 앞에서 이야기한 두 영역 (Young 영역,Old 영역)과 Perm 영역 이렇게 3가지로 영역으로 구성된다.
PermGen은 Perm 영역을 말한다.
Perm 영역을 늘려주기 위해서는 -XX:MaxPermSize 옵션을 이용하며
아래는 톰캣에 설정한 예이다.
set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx512m -XX:MaxPermSize=128m
*참조: JVM GC와 메모리 튜닝(조대협)
http://www.j2eestudy.co.kr/lecture/lecture_read.jsp?db=lecture0401_1&table=j2ee&id=1
댓글