TOMCAT内存溢出问题
最近经常出现一个问题: 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=256mset 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=512mcatalina.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内存溢出问题相关推荐
- Tomcat内存溢出解决办法
工作中,Tomcat内存溢出遇到两次了,就在网上找了些资料,将解决办法分享一下: 使用Java程序从数据库中查询大量的数据时出现异常: java.lang.OutOfMemoryError: Ja ...
- linux/centos 解决Tomcat内存溢出,centostomcat
2019独角兽企业重金招聘Python工程师标准>>> linux/centos 解决Tomcat内存溢出,centostomcat Tomcat本身不能直接在计算机上运行,需要依赖 ...
- myeclipse tomcat内存溢出解决方法
为什么80%的码农都做不了架构师?>>> Tomcat直接启动正常,通过myeclipse启动tomcat内存溢出. MyEclipse启动Tomcat无视catalina.b ...
- java最大内存_JAVA:测试java虚拟机支持的最大内存 Xmx 值?Tomcat 内存溢出?
如下命令,即可测试:不断调整n的值,windows上32位的1.6x为: 1610m java -Xmx1610M -version java -Xmx1610m -version 网摘的tomcat ...
- div固定大小文字溢出自动缩小_【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!
写在前面 随着系统并发量越来越高,Tomcat所占用的内存就会越来越大,如果对Tomcat的内存管理不当,则可能会引发Tomcat内存溢出的问题,那么,如何防止Tomcat内存溢出呢?我们今天就来一起 ...
- oom 如何避免 高并发_【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!...
[高并发]高并发环境下如何防止Tomcat内存溢出?看完我懂了!! 发布时间:2020-04-19 00:47, 浏览次数:126 , 标签: Tomcat 写在前面 随着系统并发量越来越高,Tomc ...
- tomcat内存溢出(修改catalina.bat后windows启动tomcat服务没有效果) | 王猛的个人主页...
2019独角兽企业重金招聘Python工程师标准>>> tomcat内存溢出(修改catalina.bat后windows启动tomcat服务没有效果) | 王猛的个人主页. 转载于 ...
- MyEclipse 2015 运行tomcat 内存溢出的解决方法
MyEclipse 2015 运行tomcat 内存溢出的解决方法 参考文章: (1)MyEclipse 2015 运行tomcat 内存溢出的解决方法 (2)https://www.cnblogs. ...
- Tomcat内存溢出原因分析
Tomcat内存溢出的原因 在生产环境中tomcat内存设置不好很容易出现内存溢出.造成内存溢出是不一样的,当然处理方式也不一样. 这里根据平时遇到的情况和相关资料进行一个总结.常见的一般会有下面三 ...
- Tomcat 内存溢出 详解
Tomcat 内存溢出 详解 JVM管理两种类型的内存,堆和非堆.堆是给开发人员用的上面说的就是,是在JVM启动时创建:非堆是留给JVM自己用的,用来存放类的信息的.它和堆不同,运行期内GC不会释放空 ...
最新文章
- Servlet3.0之九:web模块化
- noah的前端面试题(三)|掘金技术征文
- 免费指纹浏览器破解方法之开源代码
- ML之分类预测:机器学习中多分类预测数据集可视化(不同类别赋予不同颜色)设计思路及代码实现
- 【PHP】关于IPv4、IPv6 的操作函数
- OpenGL ES之GLSL常用内建函数
- 实例:使用纹理对象创建Sprite对象
- python操作redis set_Python操作redis学习系列之(集合)set,redis set详解 (六)
- (转)微信扫码登录网页实现原理
- 读书笔记《了解用户系列六 | 群体用户心理》文/产品100(简书作者)
- PBRT 学习:安装编译
- ubuntu编译运行xv6
- 微控制器MCU四大平台你了解多少?(二)
- sql交叉表查询_初学前端需要注意什么 SQL连接相关内容有哪些
- 台达cp2000的面板怎么调节_吊灯怎么安装 吊灯怎么固定在顶上的
- 沧小海基于xilinx srio核的学习笔记之第四章 Xilinx SRIO的示例分析(二)
- CF-C. Dima and Salad
- c语言基本变量类型以及其对应的占位符
- like功能以及check功能
- 如何查看电脑jdk/jre版本以及安装路径