360SDN.COM

首页/Tomcat/列表

linux和windows下tomcat设置jvm启动内存和java_home

来源:  2013-08-02 17:27:04    评论:0点击:

Linux:

在/usr/tomcat6/bin目录下的catalina.sh文件中,首先设置JAVA_HOME,linux下设置JAVA_HOME需要使用export指令,如:export JAVA_HOME=/usr/appserver/jdk1.6

然后添加jvm的JAVA_OPTS:JAVA_OPTS='-Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+PrintGCDetails -server'

要加"m"说明是MB,否则就是KB了,在启动tomcat时会报内存不足。

-Xms:初始堆大小
-Xmx:最大堆大小
-Xmn:最小值
PermSize 永久保存区域初始大小
MaxPermSize 永久保存区域初始最大值

linux下catalina.sh中完整代码如下:

export CATALINA_BASE=/usr/appserver/tomcat6   
export CATALINA_HOME=/usr/appserver/tomcat6  
export CATALINA_TMPDIR=/usr/appserver/tomcat6/temp      
export JAVA_HOME=/usr/appserver/jdk1.6       
export JAVA_OPTS='-Xms1024m -Xmx1024m  -XX:PermSize=256m -XX:MaxPermSize=256m  -XX:+PrintGCDetails -server' 

Windows

在catalina.bat最前面加入

set JAVA_OPTS=-Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+PrintGCDetails -server

如果用startup.bat启动tomcat,OK设置生效.够成功的分配1024M内存.

windows下catalina.bat中完整代码如下:

set JAVA_HOME=E:\jdk1.6.0_31
set JAVA_OPTS=-Xms1024m -Xmx1024m  -XX:PermSize=256m -XX:MaxPermSize=256m  -XX:+PrintGCDetails  
set JAVA_OPTS=%JAVA_OPTS% -server -verbose:gc  

但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了,就是说set JAVA_OPTS=-Xms1024m -Xmx1024m 没起作用.上面分配200M内存就OOM了.. windows服务执行的是bin/tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.

解决办法:

修改注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/Tomcat7/Parameters/JavaOptions

原值为
-Dcatalina.base=F:\tomcat-7
-Dcatalina.home=F:\tomcat-7
-Djava.endorsed.dirs=F:\tomcat-7\endorsed
-Djava.io.tmpdir=F:\tomcat-7\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=F:\tomcat-7\conf\logging.properties
加入 -Xms1024m -Xmx1024m

重起tomcat服务,设置生效

为您推荐

友情链接 |九搜汽车网 |手机ok生活信息网|ok生活信息网|ok微生活
 Powered by www.360SDN.COM   京ICP备11022651号-4 © 2012-2016 版权