最近在公司做了一個(gè)j2ee+tomcat的小項(xiàng)目,涉及到tomcat加載類的內(nèi)存配置,網(wǎng)上搜了半天,再經(jīng)過自己總結(jié),終于知道怎么一回事了,下面分享一下我的經(jīng)驗(yàn),有不對(duì)的地方大家可以一起討論。
Tomcat的啟動(dòng)分為startupo.bat啟動(dòng)和注冊(cè)為windows服務(wù)的啟動(dòng),下面一一說明。
1.startup.bat啟動(dòng)
在tomcat_home/bin目錄下找到catalina.bat,用文本編輯器打開,加上下面一行:
set JAVA_OPTS= -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=256M
解釋一下各個(gè)參數(shù):
-Xms1024M:初始化堆內(nèi)存大?。ㄗ⒁?,不加M的話單位是KB)
-Xmx1029M:最大堆內(nèi)存大小
-XX:PermSize=256M:初始化類加載內(nèi)存池大小
-XX:MaxPermSize=256M:最大類加載內(nèi)存池大小
-XX:MaxNewSize=256M:這個(gè)還不清楚哈,有知道的說聲
還有一個(gè)-server參數(shù),是指啟動(dòng)jvm時(shí)以服務(wù)器方式啟動(dòng),比客戶端啟動(dòng)慢,但性能較好,大家可以自己選擇。
2.windows服務(wù)啟動(dòng)
如果你的tomcat是注冊(cè)為windows服務(wù)并且是以服務(wù)方式啟動(dòng)的,那么上面的方法就無效了,因?yàn)檫@時(shí)tomcat啟動(dòng)是讀取注冊(cè)表的參數(shù),而不是讀取批處理文件的參數(shù),這時(shí)我們有兩種方法來設(shè)置jvm參數(shù)。
第一種比較簡單,tomcat為我們提供了一個(gè)設(shè)置啟動(dòng)參數(shù)的窗體,雙擊tomcat_home/bin目錄下的tomcat6w.exe,如圖
下方的Initial memory pool就是初始化堆內(nèi)存大小,Maximun memory pool是最大堆內(nèi)存大小。
而要設(shè)置Perm Gen池的大小就要在Java Option里面加參數(shù)了,在里面加上:
-Dcatalina.base=%tomcat_home%
-Dcatalina.home=%tomcat_home%
-Djava.endorsed.dirs=%tomcat_home%\endorsed
-Djava.io.tmpdir=%tomcat_home%\temp
-XX:PermSize=256M
-XX:MaxPermSize=256M
-XX:ReservedCodeCacheSize=48M
-Duser.timezone=GMT+08
(PS:網(wǎng)上說每一行后面不要有空格,沒試過)
第二種方法是打開注冊(cè)表->HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java(路徑可能有一點(diǎn)點(diǎn)差別)
修改Options的值,把剛才上面那些參數(shù)加進(jìn)去就OK了。(別忘了先備份一下注冊(cè)表)
聯(lián)系客服