Tomcat报错—Tomcat内存溢出及大小调整

本文记录一些常见的Tomcat经常出现的内存溢出问题,在查询大量数据和加载jar包出现异常。

大家好,又见面了,我是全栈君。

本文记录一些常见的Tomcat经常出现的内存溢出问题,在查询大量数据和加载jar包出现异常。一般JVM内存溢出(OOM),分为堆内存溢出和PermGen区内存溢出:

1:java.lang.OutOfMemoryError: PermGen space(PermGen区内存溢出

PermGen space(Permanent Generation space),是指内存的永久保存区域,

主要用于存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,

它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对其进行清理,

所以如果应用中有很多CLASS的话,就很可能出现PermGen space错误。如果加载的Class超过MaxPermSize,

就会抛出该异常,可以通过调整MaxPermSize进行解决。

这种错误常常出现在WEB服务器在对项目中的JSP进行pre—compile(预编译)的时候,

还有就是项目使用了很多的第三方的jar包,这个jar的大小超过了JVM默认的大小(4M),

也是会出现此错误的。


2:java.lang.OutOfMemoryError: Java heap space(堆溢出

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值。

这两种方式的解决方法,在/bin/catalina.bat文件添加,根据自己的需求修改内存大小

加入JAVA_OPTS=”-server -XX:PermSize=64M -XX:MaxPermSize=128m

rem ----- Execute The Requested Command ---------------------------------------

JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m"

echo Using CATALINA_BASE:   "%CATALINA_BASE%"
echo Using CATALINA_HOME:   "%CATALINA_HOME%"
echo Using CATALINA_TMPDIR: "%CATALINA_TMPDIR%"

解释:

JAVA_OPTS=’-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】’

需要把这个两个参数值调大。例如:

JAVA_OPTS=’-Xms256m -Xmx512m’

表示初始化内存为256MB,可以使用的最大内存为512MB。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121273.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 记录首次在云服务器部署spring boot项目,并实现域名访问

    记录首次在云服务器部署spring boot项目,并实现域名访问第一次写博客,对初次服务器部署做一个记录,写的有错或者纰漏欢迎指正文章目录前言一、服务器准备二、安装需要的东西1.jdk2.redis3.MySQL部署项目三.域名访问总结在看.

    2022年10月3日
    2
  • flex_java文件上传(一)[通俗易懂]

    flex_java文件上传(一)[通俗易懂]功能如下:能够批量上传勾上的文件,能够批量删除指定的文件java服务器端: 

    2022年10月19日
    4
  • SPSS实战:单因素方差分析(ANOVA)

    SPSS实战:单因素方差分析(ANOVA)SPSS:单因素方差分析方差分析单因素方差分析单因素方差分析的原理单因素方差分析的SPSS操作方差分析方差分析是一种假设检验,它把观测总变异的平方和与自由度分解为对应不同变异来源的平方和与自由度,将某种控制性因素所导致的系统性误差和其他随机性误差进行对比,从而推断各组样本之间是否存在显著性差异,以分析该因素是否对总体存在显著性影响。方差分析法采用离差平方和对变差进行度量,从总离差平方和分解出可追溯到指定来源的部分离差平方和。方差分析要求样本满足以下条件:可比性:资料中各组均数本身必须具有可比性,这是

    2022年7月27日
    42
  • 真正免费的国外PHP建站空间

    真正免费的国外PHP建站空间最近在学习wordpress,找了一个挺不错的国外免费建站空间:http://www.000webhost.com/582659.html空间属性:空间容量 1500MB数据流量 100GB/月附加域名  5个子域名   5个E-mail地址  5个MySQL数据库  2个

    2022年9月21日
    2
  • 记一次阿里云服务器因Redis被【挖矿病毒crypto和pnscan】攻击的case,附带解决方案

    记一次阿里云服务器因Redis被【挖矿病毒crypto和pnscan】攻击的case,附带解决方案一、事情缘由前段时间给大家录制《玩转Docker》教学视频,链接请参阅https://www.bilibili.com/video/BV1BK4y1A78M,为了更好的演示,就在阿里云搞了一个云服务器,自己本地连接。 云服务器到手之后,为了可以让自己本地可以连接到阿里云服务器上就做了如下操作: 开放了ssh(port:22)端口:为了远程连接使用。 开放了剩余的其他所有端口:录制教学视频时启动了相关容器,容器的一些固定端口6379等映射到了宿主机的随机端口上,为了能从公网访问到容器的内容,就开放

    2022年6月10日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号