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