在 啟動過程中出現 內存 溢出問題,拋出類似如下異常信息:
java.lang.OutOfMemoryError: Java heap space
可以嘗試辦法:
A.修改Tomcat\bin\catalina.bat,添加如下內容
set JAVA_OPTS=-Xms256m -Xmx512m -Djava.awt.headless=true [-XX:MaxPermSize=128M]
B.eclipse->windows->preferences..->tomcat->jvm..->jvm文本框里,添加-Xms256m -Xmx512m
C.eclipse->preference->java->instal jres->edit,增加參數:-Xms256m -Xmx512m
參考原因: JVM中如果98%的時間是用於GC且可用的, Heap size不足2%的時候將拋出此異常信息。
JVM堆的設置是指java程序運行過程中JVM可以調配使用的內存空間的設置.JVM在啟動的時候會自動設置Heap size的值,其初始空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)是物理內存的1/4。
可以利用JVM提供的-Xmn -Xms -Xmx等選項可進行設置。Heap Size 最大不要超過可用物理內存的80%,一般的要將-Xms和-Xmx選項設置為相同,而-Xmn為1/4的-Xmx值。
Heap size的 -Xms -Xmn 設置不要超出物理內存的大小。否則會提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。
朋友們,上面僅僅是問題表面的解決,根本上的解決還需要借助JVM內存監測工具,有待研究。。。。。
=============================
啟動MyEclipse啟動Tomcat無視catalina.bat中設置內存大小的問題。
在tomcat的catalina.bat中設置set JAVA_OPTS=-Xms128m -Xmx256m,直接使用startup.bat啟動tomcat沒有問題。但是在myeclipse中配置tomcat后,通過myeclipse啟 動就出現內存溢出,之前在catalina.bat中設置的內存似乎沒有作用。
解決方法:窗口->首選項->MyEcliipse->Application Servers->Tomcat->Tomcat5.x->JDK->Optional Java VM arguments中填寫一下內容。
-Xms128m -Xmx256m
-Dcom.sun.management.jmxremote=true
內存具體大小視具體情況制定。
tomcat分為安裝和壓縮包形式,安裝的情況catalina.bat設定、使用系統服務不會生效,而是存儲在注冊表中,位置是 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions 修改時視情況而定。