增加eclipse啟動的Tomcat內存的方法
Tomcat一般默認情況下最大最優內存設置為2G
這種情況下,修改Tomcat\bin\catalina.bat,添加如下內容
set JAVA_OPTS=-Xms256m -Xmx512m -Djava.awt.headless=true [-XX:MaxPermSize=128M]
這種設置方法並不起作用!!!
要采用下面的方法:
A.windows->preference->java->instal jres->edit,增加參數:-Xms256m -Xmx512m
或者
B.windows->preferences..->tomcat->jvm..->jvm文本框里,添加-Xms256m -Xmx512m
如果使用myeclipse,
窗口->首選項->MyEcliipse->Application Servers->Tomcat->Tomcat5.x->JDK->Optional Java VM arguments中填寫一下內容。
-Xms128m -Xmx256m
-Dcom.sun.management.jmxremote=true
=***************************************************************
-Xms512m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256M
=***************************************************************
tomcat內存增加
(2007-06-05 12:50:27)tomcat提供了兩種安裝模式,即免安裝(*.zip)和安裝(*.exe)方式。針對不同的安裝方式下修改tomcat內存大小的方法幾注意問題(windows環境):
set JAVA_OPTS=-Xms512m -Xmx512m //表示初始化最小可用內存和最大可用內存都是512MB(修改相應值即可)
這一欄改為
就可以將JAVA虛擬機分配內存
但是很多人修改后,發現修改並沒有起作用,即通過windows的服務啟動tomcat時,實際的內存還是默認的,修改的設置並沒有起作用;而通過<CATALINA_HOME>\bin\startup.bat 啟動卻是生效的。這是為什么呢?因為在安裝過程中,JVM的初始化參數已經寫在注冊表中了,由於沒有修改注冊表中相關參數,所以以windows服務方式啟動時,修改的並沒有生效。而通過<CATALINA_HOME>\bin\startup.bat 啟動直接是通過<CATALINA_HOME>\bin\catalina.bat文件中的配置的。你需要重新加載到系統服務中才生效,或者你手工在注冊表中查找修改啟動值,加載到服務中的時候參數已經配置好了,自己修改artup.bat不會改變注冊表中的參數設置。
解決方法:修改注冊表中的參數,加入JVM初始化內存的參數:
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions
值為
-Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"
-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"
-Xrs
如加入 -Xms512m -Xmx800m
方式2:針對免安裝的用戶,也可以通過將tomcat注冊為windows的一個服務的方式來實現:‘
我們可以對service.bat文件做一些其他修改,使tomcat更加能滿足我們各種不同需求時的要求
1. 如果讓tomcat編譯jsp文件,就在PR_CLASSPATH中加入J2SDK的tools.jar
修改前:
set PR_CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar
修改后:
set PR_CLASSPATH=%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar
2.要使用一個特定的JVM,就要修改jvm的參數;要使注冊的windows服務的啟動方式為自動,增加--Startup Automatic,這個是比較常用的;要用定制的server.xml配置文件並且傳遞多個參數給StartClass,要修改StartParams的值,各個值之間用分號分隔:
修改前:
"%EXECUTABLE%" //IS//%SERVICE_NAME% --Jvm auto
--StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap
--StartParams start --StopParams stop
修改后:
"%EXECUTABLE%" //IS//%SERVICE_NAME% --Jvm "%JAVA_HOME%\jre\bin\server\jvm.dll"
--StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap
--StartParams "-config;%CUSTOM_SERVERXML_FILE%;-nonaming;start" --StopParams stop
--Startup Automatic
3. 指定最大和最小的內存限制,要增加jvm的初始參數
修改前:
"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions
"-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed"
--StartMode jvm --StopMode jvm
修改后:
"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions
"-Xms128M;-Xmx256M;-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed"
--StartMode jvm --StopMode jvm
4.有時注冊windows服務成功后,但是啟動服務時顯示“發生服務特定錯誤: 0.”
就是因為jvm沒有指定,修改Jvm auto為Jvm "%JAVA_HOME%\jre\bin\server\jvm.dll"后重新注冊windows服務就可以啟動了。