0

我使用大量插件创建了一个广泛的 Grails Web 应用程序。我将此应用程序部署在 Tomcat 服务器(版本 08)上,但随着记录开始增长,我收到 Java 堆内存错误,例如:

  1. 处理请求时发生 OutOfMemoryError
  2. JobExecutionException:java.lang.OutOfMemoryError:Java 堆空间
  3. java.lang.IllegalStateException:已绑定到线程的键的值
  4. 处理 GroovyPageView 时出错:执行标签时出错:Java 堆空间

我已经尝试了很多关于增加分配给我的 Tomcat 服务器的堆空间的事情,例如:

  1. 在 tomcat/bin 目录中创建文件 'setenv.bat',内容为 'setx JAVA_OPTS="-server -Xmx1024m"'
  2. 设置系统环境变量。名称:CATALINA_OPTS 值:-Xms256m -Xmx1024m
  3. 使用“set”和“setx”命令设置这些变量。
  4. 在我的 BuildConfig.Groovy 文件中添加了以下行作为第一行:

    grails.tomcat.jvmArgs= ["-Xms512m", "-Xmx1024m", "-XX:PermSize=512m", "-XX:MaxPermSize=1024m"]

我正在使用 Java-Melody 来监控请求、内存、线程进程。我用它来检查这个: 在此处输入图像描述

PS 在我的服务器机器中,安装了多个 Tomcat 服务器,在这些服务器上部署了不同的多个应用程序。其次,我成功地通过在 Tomcat Java 配置中写入: -XX:PermSize=512m -XX:MaxPermSize=1024m 来增加我的 permGen 内存。

对此的任何帮助将不胜感激。

4

1 回答 1

0

您可以在 Java 选项卡中使用 bin/tomcat7w.exe 工具设置内存限制。

但是,我还没有尝试使用 Tomcat 8 或同一服务器上的多个 Tomcat 实例。

希望这可以帮助...

于 2014-11-25T11:22:03.443 回答