tomcat內存配置
windows中大家都知道,JAVA程序啟動時都會JVM都會分配一個初始內存和最大內存給這個應用程序。這個初始內存和最大內存在一定程度都會影響程序的性能。比如說在應用程序用到最大內存的時候,JVM是要先去做垃圾回收的動作,釋放被占用的一些內存。
所以想調整Tomcat的啟動時初始內存和最大內存就需要向JVM聲明,一般的JAVA程序在運行都可以通過中-Xms -Xmx來調整應用程序的初始內存和最大內存:
如java -Xms64m -Xmx128m a.jar.
tomcat的啟動程序是包裝過的,不能直接使用java -X..... tomcat.*來改變內存的設置。在Tomcat在改變這個設置。
方法一
在catalina.bat文件中,文件開頭注釋結束的地方加上
set CATALINA_OPTS="-server -Xms256m -Xmx256m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m"
方法二
適合將tomcat作為係統服務啟動,這時候上麵設置的方法就不適用了,因為作為係統服務的話,係統啟動時調用的是 %tomcat_home%\bin\tomcat5w.exe,他讀取注冊表中的值,而不是catalina.bat的設置,因此需要修改注冊表:
修改注冊表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\Java\Options
原值為
-Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"
-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"
-Xrs
改為:
-Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"
-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"
-Xrs -Xms300m -Xmx350m
重起tomcat服務,設置生效。
按方法二修改後用windows服務器啟動發現內存並沒有改變,還是默認的128M,是怎麼回事呢,現說明一下具體的操作,在tomcat5的情況下,注冊表
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\Java下還有兩個屬性,JvmMs和JvmMx,你應該已經猜到了,對了,就是修改這兩個屬性即可。
但是對於tomcat6來說,好像沒有這兩個屬性了,所以即使在Options下添加也沒有效果,解決方法是手工添加這兩個屬性即可。
另外還說明一下查看tomcat內存使用方法:首先登陸tomcat管理頁麵,如:https://localhost:8080/,點擊左邊的Status,在該頁麵找到JVM,它下麵有這麼一句: Free memory: 251.87 MB Total memory: 316.81 MB Max memory: 986.12 MB,這就表示現在剩餘251.87M內存閑置,總共有361.81MB內存,如果超過361.81M後最大可有986.12M內存,如果還超出這個值的話就會出現上麵說的內存溢出了。
原帖地址:https://blog.163.com/alpsdyk2001@126/blog/static/52794148200983093527594/
最後更新:2017-04-03 05:40:23