반응형

[JVM] OutOfMemory PermGen Space 해결법



1. 원인
 

엔진 기동시 엔진이 따로 오류 메시지를 뱉지 않고 멈춰있던 현상을 발견함.
.
보통은 에러 메시지를 뱉으나 에러메시지를 안뱉는 이상한 상태..

그래서 디버그를 따라가보니 다음과같은 오류가 발생하고있었음..
 
1
java.lang.OutOfMemoryError: PermGen space
cs


2. 해결방법
 
VM 옵션값에 아래의 설정을 해주면됨
 
PermSize PermGen min 값, MaxPermSize PermGen max 값이며

운영하시는 시스템의 메모리를 분석하고 적당한 메모리 값을 설정해줌.



<>


Run > Run Configurations > 서버의 Arguments 탭에서 VM arguments에 

-XX:PermSize=OOOm -XX:MaxPermSize=OOOm 



3. PermGen 영역 이란?
 
PermGen 영역은 OS, JVM 버전마다 다른 Default 값을 가지고 있긴함 하지만 Default는 언제나 그렇듯 너무작다.. 
 
따라서 클래스 로딩이 많은 시스템의 경우 PermGen 이 부족한 상황이 꽤나 발생함 
 
JDK 8 이상부턴 PermGen 부분이 제거되고 Metaspace 로 변경되어 더이상 PermGen 오류를 볼수없다.



+ 추가

위의 내용이 아닌 Out Of Memory 가 발생한다면


1. Out Of Memory 발생 할 경우 heap memory 를 늘리는 방안
 
2. 해당 WAS 에서 사용중인 memory 를 확인 하여 free 영역 확인


반응형

BELATED ARTICLES

more