tomcat outofmemoryerror内存溢出

tomcat内存溢出,堆内存可以分为三个部分:永久保存区域,新生区,老年区。tomcat比较常见的内存溢出包括(OutOfMemoryError:java heap space)和(OutOfMemoryError:PermGen space)两种。

1.OutOfMemoryError:java heap space

heap space通常指程序运行过程中,虚拟机可以调配的内存区域,程序中new的对象在该区域。GC机制会对该区域的内存进行回收,因此该区域的内存是动态的。

该区域内存溢出通常有两个原因:

  • 程序存在内存泄露

      程序的内存泄漏,需要根据实际情况跟踪排查,找出内存泄漏的原因。

  • tomcat参数配置的内存太小了

      tomcat参数给虚拟机分配的内存太小了,需要调大内存。

      打开TOMCAT_HOME/bin/catalina.bat文件,找到 set JAVA_OPTS= -Xms512m -Xmx512m,根据实际情况修改这两个参数的大小。Xms(初始堆大小)和Xmx(最大堆大小)可以设置为相同大小,最大不要超过可用物理内存的80%。

可通过cmd命令:java -Xmx2048M -version   修改2048的值,来测试最大Xmx的值,如果超出最大值会报错,否则会输出jdk版本。

2.OutOfMemoryError:PermGen space

PermGen space是永久保存区域,该区域用于存放Class和Meta信息,GC不会对该区域进行内存回收,因此该区域内存是相对静态的。如果应用中有较多的Class,而分配的空间不足的话就会出现内存溢出。

针对该区域的内存溢出,可以调整tomcat的参数配置,调大该区域的内存。

打开TOMCAT_HOME/bin/catalina.bat文件,找到-XX:PermSize=128m  -XX:MaxPermSize=256m,根据实际情况修改这两个参数的大小。-XX:PermSize(永久保存区初始值),-XX:MaxPermSize(永久保存区最大值)

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值