ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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/

    댓글

Designed by Tistory.