자바에서 클래스 메타 정보영역인 PermGen영역에서 OutOfMemoryError 가 나면..

보통 permgen 영역을 넓히면 된다.

 

해결 방법을 소개한다.

1. MaxPermSize을 늘린다.

-XX:MaxPermSize=256m 옵션을 실행할떄 추가한다. 보통 이정도면 꽤 많이 쓰는 것이다. 톰캣이라면, catalina.sh에 추가하면 된다.

 

 

만약 ConcurrentMarkSweep (CmS)  GC를 할 때면, 아래 옵션을 추가해야 한다.. CMS GC때는 반드시 permgen 영역을 gc하지 않는다. 따라서 추가하는 것이 많다. 아무 때나 추가하는 것이 절대 아니다.

 

2. CMSPermGenSweepingEnabled , CMSClassUnloadingEnabled 를 추가한다.

-XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled 옵션을 추가한다.

중요한 것은 ParreleGC

 

'java core' 카테고리의 다른 글

svn과 연동 (svnkit)  (0) 2009.03.25
exception시 어떻게 되는가?  (0) 2009.03.05
Generic Erasure  (0) 2009.02.24
Java Profiling API 공부 시작..  (0) 2009.02.20
아파치 세션이 계속 있다??  (0) 2009.02.20
Posted by '김용환'
,