tomcat 報內存溢出怎麼辦?
java.lang.OutOfMemoryError....
只需要修改一下 tomcat 的運行內存即可
myeclipse 配置如下:
找到自己配置的 tomcat 找到下面的 jdk
加上下面一段話 -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
eclipse 配置如下:
找到配置好的 tomcat 點擊 Open launch configuration
點擊 Arguments 更改 VM arguments 框中的內容,將 -Xms512M-Xmx1024M -XX:MaxPermSize=512m 放到最前面
linux 配置如下:
修改啟動文件即可
vim TOMCAT_HOME/bin/catalina.sh
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m"
windows下也可以直接修改 tomcat 的啟動文件(catalina.bat)
找到 tomcat 的安裝目錄/bin/catalina.bat 在第一行加上
set JAVA_OPTS=-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M
也可以可以自己調配(以下是解釋)
-Xms java Heap初始大小。 默認是物理內存的1/64。
-Xmx java heap最大值。建議均設為物理內存的80%。不可超過物理內存。
-Xmn java heap最小值,一般設置為Xmx的3、4分之一。
-XX:PermSize 設定內存的永久保存區初始大小,預設值為64M。
-XX:MaxPermSize 設定內存的永久保存區最大大小,預設值為64M。
-XX:SurvivorRatio=2 生還者池的大小,默認是2。如
-XX:NewSize 新生成的池的初始大小。 預設值為2M。
-XX:MaxNewSize 新生成的池的最大大小。 預設值為32M。
+XX:AggressiveHeap 讓jvm忽略Xmx參數,瘋狂地吃完一個G物理內存,再吃盡一個G的swap。
-Xss 每個線程的Stack大小
-verbose:gc 現實垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日誌文件
-XX:+UseParNewGC 縮短minor收集的時間
-XX:+UseConcMarkSweepGC 縮短major收集的時間
-XX:userParNewGC 可用來設置並行收集(多CPU)
-XX:ParallelGCThreads 可用來增加並行度(多CPU)
-XX:UseParallelGC 設置後可以使用並行清除收集器(多CPU)
推薦閱讀:
※adt-bundle-windows沒有集成tomcat,如何配置tomcat伺服器?網上的教程大多很古老不適用。
※tomcat運行久了,需要重新啟動,才能接收客戶端請求,但是靜態資源可以訪問,怎麼解決?
※tomcat中對靜態資源的訪問也會用servlet來處理嗎?
※直接優化JVM 和 Tomcat JVM(修改catalina.sh)優化有什麼區別?
※什麼樣的項目才會考慮使用JBoss、WebSphere、WebLogic等伺服器?
TAG:ApacheTomcat | MyEclipse | Eclipse插件 |