大家都知道,JAVA程序啟動時都會JVM都會分配一個初始內存和最大內存給這個應用程序。這個初始內存和最大內存在一定程度都會影響程序的性能。比如說在應用程序用到最大內存的時候,JVM是要先去做垃圾回收的動作,釋放被占用的一些內存。
所以想調整Tomcat的啟動時初始內存和最大內存就需要向JVM聲明,一般的JAVA程序在運行都可以通過中-Xms -Xmx來調整應用程序的初始內存和最大內存:
如:java -Xms64m -Xmx128m a.jar.
tomcat的啟動程序是包裝過的,不能直接使用java -X..... tomcat.*來改變內存的設置。在Tomcat在改變這個設置
有兩種方法:
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="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% 中的%CATALINA_OPTS% 替換成-Xms64m -Xmx512m
其上為方法一
--------------------------------------------------------------------------------------------------------------
另外一個方法是
在 tomcat_home/bin/catalina.sh 這個文件里
找到下面:
# ----- Execute The Requested Command -----------------------------------------
echo "Using CATALINA_BASE: $CATALINA_BASE"
echo "Using CATALINA_HOME: $CATALINA_HOME"
echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
echo "Using JAVA_HOME: $JAVA_HOME"
然后增加一行..
# ----- Execute The Requested Command -----------------------------------------
JAVA_OPTS="-server -Xmx512m -Xms128m -Djava.awt.headless=true "
echo "Using CATALINA_BASE: $CATALINA_BASE"
echo "Using CATALINA_HOME: $CATALINA_HOME"
echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
echo "Using JAVA_HOME: $JAVA_HOME"
就OK了.