【问题标题】:Increase Xmx and Xms for grails run-app为 grails run-app 增加 Xmx 和 Xms
【发布时间】:2010-11-18 15:21:37
【问题描述】:

我们目前遇到了 grails 的性能问题。加载我们的一个主页大约需要 10 秒。我检查并看到我们的 grails 应用程序以 512 内存启动。我们目前最多可以使用 3.5 gigs 的内存。

我尝试导出以下内容:

导出 JAVA_OPTS="-XX:MaxPermSize=1024m -Xmx1024M -server"

在检查了它的启动方式后,它似乎仍然以 512m 设置启动。这套在哪里?

【问题讨论】:

  • 您的 Grails 应用程序是否在 servlet 容器中运行,例如Tomcat,还是你使用 grails run-app 命令?

标签: grails


【解决方案1】:

Csaba的回答不准确。

您不需要调整 startGrails 脚本。这很危险,因为下次升级 Grails 时,您将丢失配置。我什至不是在谈论多个开发人员之间应该相同的环境!

解决方法很简单:

  1. 定义GRAILS_OPTS="-XX:MaxPermSize=1024m -Xmx1024M -server"
  2. 不要定义JAVA_OPTS

【讨论】:

  • 除了windows startGrails.bat脚本中没有GRAILS_OPTS!
  • @6006604 从 Windows 的命令行运行 set GRAILS_OPTS=-XX:MaxPermSize=1024m -Xmx1024M -server 然后你通常的 grails run-app。使用 VirtualVM 来说服自己进行这些设置。
  • @fabien7474 我遇到了同样的问题,我将它添加到我在 ubuntu export GRAILS_OPTS="-XX:MaxPermSize=1024m -Xmx1024M -server" 上的 .bashrc 文件中,但这并没有帮助,我仍然遇到同样的错误,我还有什么其他问题吗这里不见了?
  • -server 选项有什么作用?
  • 还要注意 BuildConfig.groovy 中的 grails.project.fork 可以覆盖内存设置。在另一篇文章中查看此答案。 stackoverflow.com/a/23562774/311525
【解决方案2】:

我假设您使用 Linux 或其他一些 unix 变体。

不幸的是,似乎(至少在 Grails 1.1.1 中)$GRAILS_HOME/bin/startGrails 直接在 JAVA_OPTS 中设置了 -Xmx512m 值(在 Windows 上,startGrails.bat 仅在您不提供自己的值时才设置此值- 我想知道为什么 unix 脚本的行为不同)。似乎目前唯一的方法是在startGrails 中覆盖此设置。

请注意,以上仅适用于开发。如果您将战争部署到应用服务器,则将使用服务器启动脚本中的内存设置。

更新 2010.07.30:正如 fabian7474 所写,from Grails 1.2.2 您可以使用 GRAILS_OPTS 指定 vm 参数,现在这是推荐的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 2012-08-01
    • 2011-05-17
    • 2015-07-01
    • 2010-11-08
    相关资源
    最近更新 更多