我使用大量插件创建了一个广泛的 Grails Web 应用程序。我将此应用程序部署在 Tomcat 服务器(版本 08)上,但随着记录开始增长,我收到 Java 堆内存错误,例如:
- 处理请求时发生 OutOfMemoryError
- JobExecutionException:java.lang.OutOfMemoryError:Java 堆空间
- java.lang.IllegalStateException:已绑定到线程的键的值
- 处理 GroovyPageView 时出错:执行标签时出错:Java 堆空间
我已经尝试了很多关于增加分配给我的 Tomcat 服务器的堆空间的事情,例如:
- 在 tomcat/bin 目录中创建文件 'setenv.bat',内容为 'setx JAVA_OPTS="-server -Xmx1024m"'
- 设置系统环境变量。名称:CATALINA_OPTS 值:-Xms256m -Xmx1024m
- 使用“set”和“setx”命令设置这些变量。
在我的 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 内存。
对此的任何帮助将不胜感激。