修改TOMCAT的JVM虛擬機內(nèi)存大小的三種方法
修改TOMCAT的JVM虛擬機內(nèi)存大小幾種方式
Tomcat默認可以使用的內(nèi)存為128MB,在較大型的應(yīng)用項目中,這點內(nèi)存是不夠的,需要調(diào)大。
經(jīng)常會出現(xiàn)Java.lang.OutOfMemoryError: Java heap space 即JVM Heap溢出的錯誤。
對此有以下幾種方法可以選用:
第一種方法:修改catalina.bat/catalina.sh文件
1.linux 下調(diào)整tomcat的內(nèi)存設(shè)置 修改bin目錄下catalina.sh文件 在cygwin=false之上 添加以下語句 JAVA_OPTS="-Xms1024m -Xmx4096m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m" 其中-xms為jvm初始化堆的大小,-xmx為jvm堆的最大值 2. window 下調(diào)整tomcat的內(nèi)存設(shè)置 修改bin目錄下catalina.bat文件@echo off下追加 set JAVA_OPTS= -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=256M 3.eclipse下修改外置tomcat的內(nèi)存設(shè)置 open launch configuration=>arguments=>vm arguments 追加-Xms1024M -Xmx4096M -XX:PermSize=512m -XX:MaxPermSize=2048m
第二種方法:環(huán)境變量中設(shè)置
變量名:JAVA_OPTS 變量值:-Xms512m-Xmx512m (服務(wù)器內(nèi)存大小為32G) 變量值:-Xms512M -Xmx2048M -XX:PermSize=512M -XX:MaxPermSize=2048M -XX:ReservedCodeCacheSize=512m
前兩種方法針對的是bin目錄下有catalina.bat的情況(比如直接解壓的Tomcat等)并且通過startup.bat/startup.sh啟動才生效,但是有些安裝版的Tomcat下沒有catalina.bat,這個時候可以采用如下方法,當然這個方法也是最通用的方法:
第三種方法:通過D:apache-tomcat-8.0.52-windows-x64apache-tomcat-8.0.52in omcat8w.exe,配置內(nèi)存大小
1》打開D:apache-tomcat-8.0.52-windows-x64apache-tomcat-8.0.52in omcat8w.exe, 2》點擊Java選項卡,然后將會發(fā)現(xiàn)其中有這么兩項:Initialmemorypool和Maximummemorypool.Initialmemorypool這個就是初始化設(shè)置的內(nèi)存的大小。 3》Maximummemorypool這個是最大內(nèi)存的大小設(shè)置完了就按確定然后再重啟TOMCAT你就會發(fā)現(xiàn)tomcat中jvm可用的內(nèi)存改變了。
另外需要考慮的是Java提供的垃圾回收機制。虛擬機的堆大小決定了虛擬機花費在收集垃圾上的時間和頻度。收集垃圾可以接受的速度與應(yīng)用有關(guān),應(yīng)該通過分析實際的垃圾收集的時間和頻率來調(diào)整。如果堆的大小很大,那么完全垃圾收集就會很慢,但是頻度會降低。如果你把堆的大小和內(nèi)存的需要一致,完全收集就很快,但是會更加頻繁。調(diào)整堆大小的的目的是最小化垃圾收集的時間,以在特定的時間內(nèi)最大化處理客戶的請求。在基準測試的時候,為保證最好的性能,要把堆的大小設(shè)大,保證垃圾收集不在整個基準測試的過程中出現(xiàn)。
如果系統(tǒng)花費很多的時間收集垃圾,請減小堆大小。一次完全的垃圾收集應(yīng)該不超過3-5秒。如果垃圾收集成為瓶頸,那么需要指定代的大小,檢查垃圾收集的詳細輸出,研究垃圾收集參數(shù)對性能的影響。一般說來,你應(yīng)該使用物理內(nèi)存的80%作為堆大小。當增加處理器時,記得增加內(nèi)存,因為分配可以并行進行,而垃圾收集不是并行的。
以上就是修改TOMCAT的JVM虛擬機內(nèi)存大小的三種方法的詳細內(nèi)容,更多關(guān)于修改TOMCAT JVM內(nèi)存大小的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
IDEA2021 tomcat10 servlet 較新版本踩坑問題
這篇文章主要介紹了IDEA2021 tomcat10 servlet 較新版本踩坑問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04深入淺析Centos 7系統(tǒng)的Tomcat服務(wù)器
tomcat最初是由Sun的軟件架構(gòu)師詹姆斯 鄧肯 戴維森開發(fā)的。后來他幫助將其變?yōu)殚_源項目,并由Sun貢獻給Apache軟件基金會。這篇文章主要介紹了Centos 7系統(tǒng)的Tomcat服務(wù)器的相關(guān)知識,需要的朋友可以參考下2019-12-12Tomcat starup.bat腳本開機自啟動的實現(xiàn)
本文主要介紹了Tomcat starup.bat腳本開機自啟動的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04Tomcat服務(wù)器啟動失敗的一些原因及解決辦法總結(jié)
Tomcat是常用的應(yīng)用服務(wù)器之一,主要用于開發(fā)和測試,也有少量用戶用在生產(chǎn)系統(tǒng)中,這篇文章主要給大家介紹了關(guān)于Tomcat服務(wù)器啟動失敗的一些原因及解決辦法的相關(guān)資料,需要的朋友可以參考下2023-12-12Eclipse添加新server時無法選擇Tomcat7的解決方法
有朋友會遇到在New Server對話框中選擇了Tomcat 6/7后卻無法單擊“Next”按鈕的問題,接下來通過本文給大家分享Eclipse添加新server時無法選擇Tomcat7的解決方法,需要的朋友參考下2017-01-01Tomcat配置訪問日志和線程數(shù)的實現(xiàn)步驟
本文主要介紹了Tomcat配置訪問日志和線程數(shù)的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05