第一種方法:
Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下設置:
JAVA_OPTS='-Xms【初始化內存大小】?-Xmx【可以使用的最大內存】'
需要把這個兩個參數值調大。例如:
JAVA_OPTS='-Xms256m?-Xmx512m'
表示初始化內存為256MB,可以使用的最大內存為512MB。
第二種方法:?環境變量中設?????變量名:JAVA_OPTS?????變量值:-Xms512m???-Xmx512m
第三種方法:前兩種方法針對的是bin目錄下有catalina.bat的情況(比如直接解壓的Tomcat等),但是有些安裝版的Tomcat下沒有catalina.bat,這個時候可以采用如下方法,當然這個方法也是最通用的方法:打開tomcatHome/\bin/\tomcat5w.exe,點擊Java選項卡,然后將會發現其中有這么兩項:Initial?memory?pool和Maximum?memory?pool.Initial?memory?pool這個就是初始化設置的內存的大小。Maximum?memory?pool這個是最大內存的大小?設置完了就按確定然后再重啟TOMCAT你就會發現tomcat中jvm可用的內存改變了
另外需要考慮的是Java提供的垃圾回收機制。虛擬機的堆大小決定了虛擬機花費在收集垃圾上的時間和頻度。收集垃圾可以接受的速度與應用有關,應該通過分析實際的垃圾收集的時間和頻率來調整。如果堆的大小很大,那么完全垃圾收集就會很慢,但是頻度會降低。如果你把堆的大小和內存的需要一致,完全收集就很快,但是會更加頻繁。調整堆大小的的目的是最小化垃圾收集的時間,以在特定的時間內最大化處理客戶的請求。在基準測試的時候,為保證最好的性能,要把堆的大小設大,保證垃圾收集不在整個基準測試的過程中出現。????如果系統花費很多的時間收集垃圾,請減小堆大小。一次完全的垃圾收集應該不超過?3-5?秒。如果垃圾收集成為瓶頸,那么需要指定代的大小,檢查垃圾收集的詳細輸出,研究?垃圾收集參數對性能的影響。一般說來,你應該使用物理內存的?80%?作為堆大小。當增加處理器時,記得增加內存,因為分配可以并行進行,而垃圾收集不是并行的。
一個要注意的地方:建議把內存的最高值跟最低值的差值縮小,不然會浪費很多內存的,?最低值加大?,最高值可以隨便設,但是要根據實際的物理內存?,如果內存設置太大了,比如設置了512M最大內存,但如果沒有512M可用內存,Tomcat就不能啟動,還有可能存在內存被系統回收,終止進程的情況
Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下設置:
JAVA_OPTS='-Xms【初始化內存大小】?-Xmx【可以使用的最大內存】'
需要把這個兩個參數值調大。例如:
JAVA_OPTS='-Xms256m?-Xmx512m'
表示初始化內存為256MB,可以使用的最大內存為512MB。
第二種方法:?環境變量中設?????變量名:JAVA_OPTS?????變量值:-Xms512m???-Xmx512m
第三種方法:前兩種方法針對的是bin目錄下有catalina.bat的情況(比如直接解壓的Tomcat等),但是有些安裝版的Tomcat下沒有catalina.bat,這個時候可以采用如下方法,當然這個方法也是最通用的方法:打開tomcatHome/\bin/\tomcat5w.exe,點擊Java選項卡,然后將會發現其中有這么兩項:Initial?memory?pool和Maximum?memory?pool.Initial?memory?pool這個就是初始化設置的內存的大小。Maximum?memory?pool這個是最大內存的大小?設置完了就按確定然后再重啟TOMCAT你就會發現tomcat中jvm可用的內存改變了
另外需要考慮的是Java提供的垃圾回收機制。虛擬機的堆大小決定了虛擬機花費在收集垃圾上的時間和頻度。收集垃圾可以接受的速度與應用有關,應該通過分析實際的垃圾收集的時間和頻率來調整。如果堆的大小很大,那么完全垃圾收集就會很慢,但是頻度會降低。如果你把堆的大小和內存的需要一致,完全收集就很快,但是會更加頻繁。調整堆大小的的目的是最小化垃圾收集的時間,以在特定的時間內最大化處理客戶的請求。在基準測試的時候,為保證最好的性能,要把堆的大小設大,保證垃圾收集不在整個基準測試的過程中出現。????如果系統花費很多的時間收集垃圾,請減小堆大小。一次完全的垃圾收集應該不超過?3-5?秒。如果垃圾收集成為瓶頸,那么需要指定代的大小,檢查垃圾收集的詳細輸出,研究?垃圾收集參數對性能的影響。一般說來,你應該使用物理內存的?80%?作為堆大小。當增加處理器時,記得增加內存,因為分配可以并行進行,而垃圾收集不是并行的。
一個要注意的地方:建議把內存的最高值跟最低值的差值縮小,不然會浪費很多內存的,?最低值加大?,最高值可以隨便設,但是要根據實際的物理內存?,如果內存設置太大了,比如設置了512M最大內存,但如果沒有512M可用內存,Tomcat就不能啟動,還有可能存在內存被系統回收,終止進程的情況