톰캣구동시 heap 이 작아서 객체를 더이상 담을 수 없을때 java.lang.OutOfMemoryError 오류가 발생됩니다. 결론은 작은 메모리를 늘려주거나 소스상의 객체를 정리?해서 처리를 해야 되는데 메모리를 늘리는 방법으로 설명을 드리도록 하죠.
무거운 어플리케이션을 처리할 때 톰캣이든 웹로직이든 자주보이는 에러메세지가 PermGen space 어쩌고 하면서 나오는 메세지일 겁니다.
예를 들자면, 특히 로컬에서 전자정부프레임워크같은 무거운 어플리케이션을 가동할때 사양이 낮은 컴퓨터에서 주로 가동이 메우 느릴 뿐더러 메모리나 구동시간이 느려서 먹통이 자주 되기도 합니다.
커맨드라인으로 톰캣을 실행시 아래 파라미터를 추가해줍니다.
-Xmx512m -Xms512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=128m
톰캣모니터로 실행을 시킨다면 Tomcat -> Java -> Java Options 에서 내용을 추가해주세요.
-Xmx512m -Xms512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=128m
참고1: 공백이 추가되면 톰캣이 구동이 안됩니다.
참고2: 64비트버전이라면 레지스트리를 변경해주세요.
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat5\Parameters\JavaJVM
리눅스나 유닉스 환경에서는 catalina.sh 파일의 상단에 아래문구를 추가해주세요.
JAVA_OPTS="-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
메모리 누수 해결방법입니다.
conf/web.xml 파일의 서블릿 부분에 아래 내용을 추가해주세요.
<init-param>
<param-name>enablePooling</param-name>
<param-value>false</param-value>
</init-param>
<param-name>enablePooling</param-name>
<param-value>false</param-value>
</init-param>
영어로된 사이트지만 천천히 살펴보면 어렵지는 않습니다^^
원본출처
'IT정보센터 > 오류해결' 카테고리의 다른 글
유챗 그누보드 오류 해결방법 및 사용기 (0) | 2017.04.27 |
---|---|
파일삭제 thumbs.db 오류해결 방법 (3) | 2017.04.07 |
Access denied for user 'root'@'%' (using password: YES) 오류안내 (0) | 2016.08.19 |
인터넷 익스플로러 다운그레이드 방법 알아보기 (0) | 2016.06.08 |
xlive.dll 다운 및 오류 해결 방법 자세한 설명~ (0) | 2016.05.12 |
리그오브레전드 d3dx9_39.dll 오류 해결하기 (0) | 2015.08.22 |
xinput1_3.dll 오류 원인과 다운로드 방법 (2) | 2015.08.04 |
게임이나 프로그램실행시 d3dx9_43.dll 오류 해결방법 (0) | 2015.07.31 |
msvcr100.dll과 msvcp100.dll 다운로드 및 오류 간단 해결 방법 (4) | 2015.07.22 |
게임 실행시 d3dx9_24.dll 혹은 d3dx9_42.dll 오류 해결방법 (2) | 2015.06.21 |