[Fortify]apache-tomcat 셋팅

■ 관련 오류 메세지:

java.lang.OutOfMemoryError: PermGen space

 

■ 설치한 패키지:

mysql-5.5.28-winx64

jdk-7u9-windows-x64

apache-tomcat-7.0.32

 

■ UNIX (catalina.sh):

 

catalina.sh의 적당한 위치에 아래와 같은 JAVA_OPTS를 추가한다.

# for Java 7

JAVAOPTS="Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms2048m -Xmx16384m -Xss1024k -XX:NewSize=256m -XX:MaxNewSize=512m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+DisableExplicitGC"


# for Java 8

JAVAOPTS="Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms2048m -Xmx16384m -Xss1024k -XX:NewSize=256m -XX:MaxNewSize=256m -XX:+DisableExplicitGC -XX:MaxMetaspaceSize=512m -XX:MetaspaceSize=256m"

 

■ 윈도우즈

 

regedit를 사용하여 아래 레지스트리를 찾아간다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tomcat7\ImagePath

값이 아래와 같이 되어 있을 경우

 

"C:\Program Files\Apache Software Foundation\Tomcat 7.0\bin\Tomcat7.exe" //RS//Tomcat7

//RS//Tomcat7 뒤에 공백을 하나 주고 아래를 추가해 준다.

++JvmOptions Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx2048m -Xss1024k -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC

 

아래와 같이 된 것을 확인한 후

"C:\Program Files\Apache Software Foundation\Tomcat 7.0\bin\Tomcat7.exe" //RS//Tomcat7 ++JvmOptions -XX:PermSize=4096m -XX:MaxPermSize=4096m -XX:+DisableExplicitGC

apache tomcat을 재시작 한다.

 

■ 메모리 leak 현상을 막기 위해서 conf 아래의 web.xml에 내용에 추가

 

vi tomcat/conf/web.xml

 

 <servlet>

        <servlet-name>jsp</servlet-name>

        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>

        <init-param>

            <param-name>fork</param-name>

            <param-value>false</param-value>

        </init-param>

        <init-param>

            <param-name>xpoweredBy</param-name>

            <param-value>false</param-value>

        </init-param>

        <init-param>

            <param-name>enablePooling</param-name>

            <param-value>false</param-value>

        </init-param>

        <load-on-startup>3</load-on-startup>

    </servlet>

 

위로 스크롤