为 grails run-app 增加 Xmx 和 Xms
Posted
技术标签:
【中文标题】为 grails run-app 增加 Xmx 和 Xms【英文标题】:Increase Xmx and Xms for grails run-app 【发布时间】: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 命令? 【参考方案1】:Csaba的回答不准确。
您不需要调整 startGrails 脚本。这很危险,因为下次升级 Grails 时,您将丢失配置。我什至不是在谈论多个开发人员之间应该相同的环境!
解决方法很简单:
-
定义
GRAILS_OPTS="-XX:MaxPermSize=1024m -Xmx1024M -server"
不要定义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 可以覆盖内存设置。在另一篇文章中查看此答案。 ***.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:正如 f***7474 所写,from Grails 1.2.2 您可以使用 GRAILS_OPTS
指定 vm 参数,现在这是推荐的方式。
【讨论】:
以上是关于为 grails run-app 增加 Xmx 和 Xms的主要内容,如果未能解决你的问题,请参考以下文章
当我使用 run-app 但部署 .war 时,Grails 操作是安全的
Intellij IDEA 14 grails run-app 错误
如何让 grails run-app 在文件更改时重新编译它们?