java.lang.OutOfMemoryError:tomcat7中的Java堆空间

时间:2014-03-10 04:56:51

标签: java tomcat7

我在tomcat服务器上收到此错误。

Exception in thread "http-bio-8080-exec-17" 
Exception in thread "http-bio-8080-exec-2"
Exception in thread "http-bio-8080-exec-15" 
Exception in thread "http-bio-8080-exec-20"
Exception in thread "http-bio-8080-exec-18" 
java.lang.OutOfMemoryError: Java heap space.

我见过MAT但是如何在Tomcat服务器中生成.hprof文件。

谢谢。

4 个答案:

答案 0 :(得分:16)

删除错误编辑文件

/etc/default/tomcat7   

替换为:

JAVA_OPTS="-Djava.awt.headless=true -Xmx1280m -XX:+UseConcMarkSweepGC"

然后重新启动Web服务器。

Xmx是新的最大内存大小,您的机器应该可以负担得起。

答案 1 :(得分:11)

将此行添加到/path/to/tomcat/bin/setenv.sh(如果不存在则创建它):

CATALINA_OPTS="$CATALINA_OPTS -server -Xms256m -Xmx1024m"

这会将tomcat的堆大小增加到1024MB。

答案 2 :(得分:5)

根据您的操作系统解决方案:

如果Ubuntu

在用户主文件夹中打开.bashrc文件(隐藏),在最后2-3行中添加或编辑一行:

export CATALINA_OPTS="-Xms512m -Xmx1024m"

其他Windows

在您的环境变量中添加/编辑

CATALINA_OPTS = "-Xms512m -Xmx1024m"

答案 3 :(得分:0)

  1. 转到 /bin 并为 Linux 系统创建一个名为 setenv.sh 的文件或为 Windows 创建一个名为 setenv.bat 的文件。

  2. 在 setenv 文件中,使用以下格式使用以下参数设置堆大小:

-Linux:

export CATALINA_OPTS="-Xms4096M -Xmx4096M"
 

-Windows:

set CATALINA_OPTS=-Xms4096M -Xmx4096M
  1. 确保最小值和最大值都匹配。
  2. 保存文件并重新启动 Tomcat。