Tomcat内存溢出及配置解决方案
問題描述:
我們公司產(chǎn)品線上運行過程中,需要調(diào)用第三方Web Service進行數(shù)據(jù)抓取,現(xiàn)場小伙伴反饋,調(diào)用第三方接口,導(dǎo)致第三方程序內(nèi)存溢出,具體報錯信息:
OutOfMemoryError: Java heap space現(xiàn)場第三方通過調(diào)整內(nèi)存大小為4G,仍然報錯,至此尋求幫助。
原因分析:
關(guān)于內(nèi)存溢出
Tomcat本身是依賴于JVM虛擬機的,報錯問題的解決還是回歸到JVM對內(nèi)存的管理上。
JVM虛擬機內(nèi)存管理分為:堆內(nèi)存(運行時數(shù)據(jù)區(qū)域)、非堆內(nèi)存(JVM本身使用的內(nèi)存)
常見內(nèi)存溢出報錯信息
配置解決方案
-Xmx Java Heap最大值,默認值為物理內(nèi)存的1/4;
-Xms Java Heap初始值,默認是物理內(nèi)存的1/64;
-Xmn 設(shè)置JVM堆的‘新生代’的最大內(nèi)存;
-Xss 每個線程的Stack大小;
-XX:PermSize:設(shè)定內(nèi)存的永久保存區(qū)域;
-XX:MaxPermSize:設(shè)定最大內(nèi)存的永久保存區(qū)域;
-XX:NewSize:設(shè)置JVM堆的‘新生代’的默認大小;
-XX:MaxNewSize:設(shè)置JVM堆的‘新生代’的最大大小;
重要知識點
參考博文
https://blog.csdn.net/qq_35440040/article/details/97805987
解決方案:
經(jīng)過詢問,現(xiàn)場的物理內(nèi)存大小為32G,所以第三方平臺設(shè)置為4G肯定不會解決問題的,Java Heap最大值,默認值為物理內(nèi)存的1/4;,所以需要設(shè)置為至少8G以上才可以生效。
打開Tomcat根目錄下的bin文件夾,編輯catalina.bat(linux為catalina.sh),將其中的%CATALINA_OPTS%(共有四處)替換為:-Xmx10240m -Xms10240m
總結(jié)
以上是生活随笔為你收集整理的Tomcat内存溢出及配置解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬关键词百度指数_Pytho
- 下一篇: keyshot环境素材文件_快速学会ke