-
tomcat 8 permgen space 오류Programming 2015. 11. 5. 18:02
1.이클립스에서 톰캣 실행시 오류 나는경우
Server탭의 오류나는 서버 더블클릭 >
General Information 탭 > Open launch configuration 클릭 >
Arguments 탭 > VM arguments 필드 마지막에 아래 내용 추가.
-XX:PermSize=256m -XX:MaxPermSize=256m
2. 톰캣만 실행했을시 오류 나는 경우 (Tomcat 8의 경우..)
{TOMCAT_HOME}/bin/catalina.sh 파일을 편집기로 열어서 제일 상단에 아래 내용 추가.JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"But.. 나는 아무리 해봐도 사이즈가 늘어나질 않는다.. Tomcat 8버전이라서 그런지.. 다른 옵션이 있는건지.. catalina.sh는 참조 하지도 않는듯한 것은 기분탓?
그래서 찾아낸 방법
{TOMCAT_HOME}/bin/catalina.bat 파일을 편집기로 열어서 JAVA_OPTS를 설정하는 부분을 찾는다. 아래 표 부분. 키워드는 JAVA_OPTS 이다
if not "%LOGGING_CONFIG%" == "" goto noJuliConfig
set LOGGING_CONFIG=-Dnop
if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuliConfig
set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
:noJuliConfig
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% "
if not "%LOGGING_MANAGER%" == "" goto noJuliManager
set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
:noJuliManager
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%"
뭔가 설정이 다를경우 JAVA_OPTS를 다르게 설정 해주는것 같은데.. 그냥 저기서 자바 실행 환경 부분을 아래와 같이 추가 해준다. (따옴표 주의!!)
if not "%LOGGING_CONFIG%" == "" goto noJuliConfig
set LOGGING_CONFIG=-Dnop
if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuliConfig
set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
:noJuliConfig
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%
-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
if not "%LOGGING_MANAGER%" == "" goto noJuliManager
set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
:noJuliManager
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%
-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
정상적으로 반영 됐는지 확인은 VisualVM 으로...
참고 : http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/