内存溢出

内存溢出

前言:使用tomcat部署项目之后,使用poi导出大约7W条数据是报错。然后查看日志发现是内存溢出。

内存溢出报错信息

  1. java.lang.OutOfMemoryError: Java heap space
  2. java.lang.OutOfMemoryError: PermGen space

解决方法

设置tomcat的内存

1. 如果是startup.bat启动

设置bin目录下的catalina.bat文件

set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m -XX:PermSize=128m -XX:MaxPermSize=512m
图片名称

网上大神提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

1.windows服务执行方法一

注册表

HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Apache Software Foundation/Procrun 2.0/tomcat/Parameters/Java
catalina.bat

1.windows服务执行方法二

打开tomcat6w.exe如果打不开执行service.bat install

catalina.bat