java的运行平台JVM(java虚拟机)在一个应用程序启动的时候,虚拟机都要分配一个最的内存和最小内存给他的。对于内存吃内存狂的JAVA来说,这个初始内存和最大内存在一定程度会对应用程序的性能产生很大的影响。比如说在我们的应用程序用到JVM给的这个最大内存配额的时候,JVM就不得不先停下我们的应用程
序的工作,去寻找可以回手的垃圾(释放已经无用的对象占用的内存),释放被占用的一些内存。
一般我们为了自己配额的这个最大值和最小值都是在启动java程序的时候加参数:-X
ms -Xmx来调整应用程序的初始内存和最大内存,其中Xms代表最小配额,Xmx代表最大配额
。
在前段时间,我用resin的时候启动文件里面还好设置这两个参数,但是换了tomcat以
后就不一样了,
tomcat的启动并不是普通的java程序那样,是经过了封装的,所以在设置这两个参数
的时候还有写麻烦,不过只要是java程序,总有地方可以设置这个参数的。
在查找了一些资料以后终于搞定了,可以通过下面这两种方法来解决:
1. 就需要在环境变量中加上TOMCAT_OPTS, CATALINA_OPTS两个属性,
如 SET CATALINA_OPTS= -Xms64m -Xmx512m;
ms是最小的,mx是最大,64m, 512m分别是指内存的容量.
2. 修改Catalina.bat文件
在166行“rem Execute Java with the applicable properties ”以下每行
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JA
VA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%"
-Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCL
ASS% %CMD_LINE_ARGS% %ACTION% 中的%CATALINA_OPTS% 替换成-Xms64m -Xmx512m
e.g
update file :
\tomcat\bin\catalina.bat
update the line
set JAVA_OPTS=-Xmx256M -Xms64M
means max cache & min cache