最近经常出现一个问题:  java.lang.OutOfMemoryError: Java heap space  。Tomcat 的JVM 内存溢出问题的解决

     最近在熟悉一个开发了有几年的项目,需要把数据库从mysql移植到oracle,首先把jdbc的连接指向mysql,打包放到tomcat里面,可以跑起来,没有问题,可是当把jdbc连接指向oracle的时候,tomcat就连续抛java.lang.OutOfMemoryError的错误。
1、首先是:java.lang.OutOfMemoryError: Java heap space
解释:
Heap size 设置 
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。 
提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。 
提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。 
解决方法:
手动设置Heap size 
修改TOMCAT_HOME/bin/catalina.bat,在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: 
Java代码 
set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m 
set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m 或修改catalina.sh 
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: 
JAVA_OPTS="$JAVA_OPTS -server -Xms800m -Xmx800m -XX:MaxNewSize=256m" 
2、其次是:java.lang.OutOfMemoryError: PermGen space
解释:
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。 
解决方法:
1. 手动设置MaxPermSize大小 
修改TOMCAT_HOME/bin/catalina.bat(Linux下为catalina.sh),在Java代码 
“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:    
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m 
“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: 
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m 
catalina.sh下为: 
Java代码 
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m"  
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m" 
网上可能解决方案很多,但是我感觉这种还是比较实用的。

TOMCAT内存溢出问题相关推荐

  1. Tomcat内存溢出解决办法

    工作中,Tomcat内存溢出遇到两次了,就在网上找了些资料,将解决办法分享一下:   使用Java程序从数据库中查询大量的数据时出现异常: java.lang.OutOfMemoryError: Ja ...

  2. linux/centos 解决Tomcat内存溢出,centostomcat

    2019独角兽企业重金招聘Python工程师标准>>> linux/centos 解决Tomcat内存溢出,centostomcat Tomcat本身不能直接在计算机上运行,需要依赖 ...

  3. myeclipse tomcat内存溢出解决方法

    为什么80%的码农都做不了架构师?>>>    Tomcat直接启动正常,通过myeclipse启动tomcat内存溢出. MyEclipse启动Tomcat无视catalina.b ...

  4. java最大内存_JAVA:测试java虚拟机支持的最大内存 Xmx 值?Tomcat 内存溢出?

    如下命令,即可测试:不断调整n的值,windows上32位的1.6x为: 1610m java -Xmx1610M -version java -Xmx1610m -version 网摘的tomcat ...

  5. div固定大小文字溢出自动缩小_【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!

    写在前面 随着系统并发量越来越高,Tomcat所占用的内存就会越来越大,如果对Tomcat的内存管理不当,则可能会引发Tomcat内存溢出的问题,那么,如何防止Tomcat内存溢出呢?我们今天就来一起 ...

  6. oom 如何避免 高并发_【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!...

    [高并发]高并发环境下如何防止Tomcat内存溢出?看完我懂了!! 发布时间:2020-04-19 00:47, 浏览次数:126 , 标签: Tomcat 写在前面 随着系统并发量越来越高,Tomc ...

  7. tomcat内存溢出(修改catalina.bat后windows启动tomcat服务没有效果) | 王猛的个人主页...

    2019独角兽企业重金招聘Python工程师标准>>> tomcat内存溢出(修改catalina.bat后windows启动tomcat服务没有效果) | 王猛的个人主页. 转载于 ...

  8. MyEclipse 2015 运行tomcat 内存溢出的解决方法

    MyEclipse 2015 运行tomcat 内存溢出的解决方法 参考文章: (1)MyEclipse 2015 运行tomcat 内存溢出的解决方法 (2)https://www.cnblogs. ...

  9. Tomcat内存溢出原因分析

    Tomcat内存溢出的原因  在生产环境中tomcat内存设置不好很容易出现内存溢出.造成内存溢出是不一样的,当然处理方式也不一样. 这里根据平时遇到的情况和相关资料进行一个总结.常见的一般会有下面三 ...

  10. Tomcat 内存溢出 详解

    Tomcat 内存溢出 详解 JVM管理两种类型的内存,堆和非堆.堆是给开发人员用的上面说的就是,是在JVM启动时创建:非堆是留给JVM自己用的,用来存放类的信息的.它和堆不同,运行期内GC不会释放空 ...

最新文章

  1. Servlet3.0之九:web模块化
  2. noah的前端面试题(三)|掘金技术征文
  3. 免费指纹浏览器破解方法之开源代码
  4. ML之分类预测:机器学习中多分类预测数据集可视化(不同类别赋予不同颜色)设计思路及代码实现
  5. 【PHP】关于IPv4、IPv6 的操作函数
  6. OpenGL ES之GLSL常用内建函数
  7. 实例:使用纹理对象创建Sprite对象
  8. python操作redis set_Python操作redis学习系列之(集合)set,redis set详解 (六)
  9. (转)微信扫码登录网页实现原理
  10. 读书笔记《了解用户系列六 | 群体用户心理》文/产品100(简书作者)
  11. PBRT 学习:安装编译
  12. ubuntu编译运行xv6
  13. 微控制器MCU四大平台你了解多少?(二)
  14. sql交叉表查询_初学前端需要注意什么 SQL连接相关内容有哪些
  15. 台达cp2000的面板怎么调节_吊灯怎么安装 吊灯怎么固定在顶上的
  16. 沧小海基于xilinx srio核的学习笔记之第四章 Xilinx SRIO的示例分析(二)
  17. CF-C. Dima and Salad
  18. c语言基本变量类型以及其对应的占位符
  19. like功能以及check功能
  20. 如何查看电脑jdk/jre版本以及安装路径

热门文章

  1. 网络安全课程学习内容
  2. 数据结构之查找算法:基本概念
  3. 【计算机就业-银行】校招想去银行该怎么准备
  4. ip、url威胁情报库(开源)
  5. Postfix实现代理Exchange邮件传输方案
  6. C#几个经常用到的字符串的截取
  7. LeetCode 20. Valid Parentheses(c++)
  8. 【洛谷习题】南蛮图腾
  9. Java 笔记——在 IDEA 中使用 Maven 配置和使用 MyBatis
  10. vijos 1057 盖房子 dp 最大子正方形