在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内存溢出是不一样的,当然处理方式也不一样。这里根据平时遇到的情况和相关资料进行一个总结。常见的一般会有下面三种情况:
第一种.OutOfMemoryError: Java heap space
第二种.OutOfMemoryError: PermGen space
第三种.OutOfMemoryError: unable to create new native thread
第一种:是堆溢出。
Linux服务器:修改TOMCAT_HOME/bin/catalina.sh;
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="$JAVA_OPTS -server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
Windows服务器:
修改TOMCAT_HOME/bin/catalina.bat,
在“echo "Using CATALINA_BASE:$CATALINA_BASE"”上面加入以下行:
set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m
第二种:永久保存区域溢出
Linux服务器:修改TOMCAT_HOME/bin/catalina.sh;
在“echo "Using CATALINA_BASE:$CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M-XX:MaxPermSize=512m"
Windows服务器:
修改TOMCAT_HOME/bin/catalina.bat;
在“echo "Using CATALINA_BASE:$CATALINA_BASE"”上面加入以下行:
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M-XX:MaxPermSize=512m