在Jetty 的VM參數中設置:
-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
在tomcat運行環境中設置:
window環境 startup.bat第一行
SET CATALINA_OPTS= -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
linux環境在catalina.sh
在
"if [ $have_tty -eq 1 ]; then"之后增加
JAVA_OPTS="-server -Xms256m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m"
1、對於安裝版的TOMCAT:
進入TOMCAT的安裝目錄下的bin目錄,雙擊tomcat6w.exe。點擊Java選項卡,可設置初始化內存,最大內存,線程的內存大小。
初始化內存:如果機器的內存足夠大,可以直接將初始化內存設置為512M,如果機器內存較小可適當調小,對於運行了EJB的應用,最好不要低於128M。
最大內存:最大內存目前設置為512M.
線程內存大小:目前配置為1024KB,這也是JDK5.0后的默認配置。
對於容器下運行了多個WEB應用時,盡量將相同的JAR包轉移到TOMCAT的lib下,此外還需要在JAVA OPTIONS加上如下配置:
-XX:PermSize=16m
-XX:MaxPermSize=128m
此配置表示JAVA永久保存區域(即不會被虛擬機回收)初始大小為16M,最大為128M。
2、對於解壓版的TOMCAT:
如果是WINDOWS操作系統,修改catalina.bat文件;否則修改catalina.sh文件。只需要在文件的頭部加上"set JAVA_OPTS=-Xms512m -Xmx512m -Xss1024k”,數值分別對應了初始化的最小內存,最大內存,線程內存大小。如果JDK的版本是5.0之后的,線程內存可以不用設置。
3、linux系統下修改方法
在/usr/local/apache-tomcat-5.5.23/bin目錄下的catalina.sh
添加:JAVA_OPTS=’-Xms512m -Xmx1024m’
要加“m”說明是MB,否則就是KB了,在啟動tomcat時會報內存不足。
-Xms:初始值
-Xmx:最大值
-Xmn:最小值
對於容器下運行了多個WEB應用時,盡量將相同的JAR包轉移到TOMCAT的lib下,此外還需要在JAVA OPTS后加上如下配置:
-XX:PermSize=16m -XX:MaxPermSize=128m
即為:JAVA_OPTS=’-Xms256m –Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m’
此配置表示JAVA永久保存區域(即不會被虛擬機回收)初始大小為16M,最大為128M。
修改內存后,可啟動TOMCAT,輸入http://127.0.0.1:8080,進入Status,會提示輸入登錄的用戶名和密碼,用戶可以在conf/tomcat-user.xml中配置(配置完后需要重啟TOMCAT),
1
|
<?xmlversion='1.0'encoding='utf-8'?>
|
|
2
|
<tomcat-users>
|
3
|
<rolerolename="manager"/>
|
|
4
|
<userusername="tomcat"password="s3cret"roles="manager"/>
|
5
|
</tomcat-users>
|
登錄后即可看到TOMCAT當前的空閑內存和最大內存。
tomcat報Exception in thread "http-8080-36" java.lang.OutOfMemoryError: PermGen space異常的解決:
PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域,
這塊內存主要是被JVM存放Class和Meta信息的,Class在被Loader時就會被放到PermGen space中,
它和存放類實例(Instance)的Heap區域不同,GC(Garbage Collection)不會在主程序運行期對
PermGen space進行清理,所以如果你的應用中有很多CLASS的話,就很可能出現PermGen space錯誤,
這種錯誤常見在web服務器對JSP進行pre compile的時候。如果你的WEB APP下都用了大量的第三方jar, 其大小
超過了jvm默認的大小(4M)那么就會產生此錯誤信息了。
解決方法: 手動設置MaxPermSize大小
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=128m -XX:MaxPermSize=256m”
建議:將相同的第三方jar文件移置到tomcat/shared/lib目錄下,這樣可以達到減少jar 文檔重復占用內存的目的。