【问题标题】:Memory limit of 512M exceeded超过 512M 的内存限制
【发布时间】:2012-11-11 03:57:08
【问题描述】:

我试图在 cloudfoundry.com 上运行 Grails 应用程序,但它返回 502 Bad Gateway,然后返回 404 Not Found。我找到了 logs/err.log,它说:

# Logfile created on 2012-11-22 17:39:55 +0000 by logger.rb/25413
F, [2012-11-22T17:39:55.488036 #10723] FATAL -- : Memory limit of 512M exceeded.
F, [2012-11-22T17:39:55.488101 #10723] FATAL -- : Actual usage was 516M, process terminated.

在此之前,我遇到了 PermGen 空间错误,因此我将其添加到环境中:

+-----------+----------------------------------------+
| Variable  | Value                                  |
+-----------+----------------------------------------+
| JAVA_OPTS | -XX:MaxPermSize=512m -Xms512M -Xmx512M |
+-----------+----------------------------------------+

我有什么选择?我可以进行任何调整以尝试使我的应用程序适合 512M 吗?如果我减少 MaxPermSize,那会给我的应用程序更多空间吗?有什么方法可以准确确定需要多大的 Perm 空间?

或者我只是超越了 CloudFoundry?有什么方法(包括付费)可以在 CloudFoundry 获得更大的虚拟机?还是我必须完全改用其他服务?

【问题讨论】:

  • (另外,请注意默认的 PermGen 是 64MiB,只是有时需要扩展,比如 96MiB。512MiB 是 对 PermGen 来说太大了。)
  • 感谢您的提示。我想知道这一点。我从stackoverflow.com/questions/10689043/… 得到了 JAVA_OPTS

标签: grails cloud-foundry permgen vmc


【解决方案1】:

您只需要更改分配给应用程序的资源量。您可以使用 VMC 执行此操作,例如,将名为 my app 的应用程序的内存分配更改为 1GB;

vmc mem myapp 1G

请记住,您的帐户为您的所有应用程序提供了最大 2G 的流量。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,vmc api 已更改,将被 cf 替换。

    到目前为止,增加应用内存的方法是执行vmc scale [APP] --memory MEMORY。例如,如果你想将你的应用程序增加到 1G,命令将是 vmc scale yourappname --memory 1G

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-29
      • 2016-08-24
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多