[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

댓글

이 블로그의 인기 게시물

[MSSQL] 데이터베이스가 사용 중이어서 배타적으로 액서스할 수 없습니다

[LINUX] CentOS 부팅시 오류 : UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY

구글코랩) 안전Dream 실종아동 등 검색 오픈API 소스를 공유합니다. (구글드라이브연동, 이미지 수집 소스)