为Tomcat增加内存指定JDK
今天重启服务的Tomcat启动失败,原因找了好久,记录一下
服务器上装了两个Tomcat
一个端口为8080,另一个端口为80
80的启动没问题
8080的启动失败
这时候要做的就是查看Tomcat目录下的的日志
我遇到的问题是PermGen space
内存溢出
解决方法也简单
Linux下修改
修改TOMCAT_HOME/bin/catalina.sh
在开头添加
JAVA_OPTS参数可选,根据自己需要配置
# -----------------------------------------------------------------------------
export JAVA_HOME=/usr/java/jdk1.6.0_45
export JRE_HOME=/usr/java/jdk1.6.0_45/jre
# OS specific support. $var _must_ be set to either true or false.
JAVA_OPTS="-server -Xmx6000m -Xms6000m -Xmn2250m -Xss512K -XX:PermSize=256m -XX:MaxPermSize=4096m -XX:+UseBiasedLocking -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:MaxTenuringThreshold=5 -Djava.awt.headless=true"
Windows环境下修改
修改TOMCAT_HOME/bin/catalina.bat
在echo Using CATALINA_BASE: "%CATALINA_BASE%"
上面加入以下行:
set JAVA_OPTS=-Xms1024m -Xmx4096m -XX:PermSize=128m -XX:MaxPermSize=256m
基本参数的意义
图片来源 关于jvm几个关键内存配置参数
关于对的具体详细信息可查看《深入理解java虚拟机》
-Xmx :堆的最大值
-Xms :堆的最小值
-Xmn :堆年轻代大小
-XXSurvivorRatio:Eden区和Survior区的占用比例.