Превышен лимит памяти 512M

Я пытаюсь запустить приложение Grails на сайте cloudfoundry.com, но оно возвращает ошибку 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, даст ли это моему приложению больше места? Есть ли способ точно определить, какого размера пермское пространство необходимо?

Или я просто перерос CloudFoundry? Есть ли способ (в том числе платный) получить виртуальную машину большего размера в CloudFoundry? Или мне нужно полностью перейти на другой сервис?


person greymatter    schedule 22.11.2012    source источник
comment
(Кроме того, обратите внимание, что PermGen по умолчанию составляет 64 МиБ, и только иногда его нужно расширять, например, 96 МиБ. 512 МиБ слишком много для ПермьГен.)   -  person    schedule 22.11.2012
comment
Спасибо за совет. Я задавался этим вопросом. Я получил JAVA_OPTS от stackoverflow.com/questions/10689043/   -  person greymatter    schedule 26.11.2012


Ответы (2)


Вам просто нужно изменить количество ресурсов, назначенных приложению. Вы можете сделать это с помощью VMC, например, чтобы изменить выделение памяти для приложения, называемого моим приложением, на 1 ГБ;

vmc mem myapp 1G

Имейте в виду, что в вашей учетной записи было максимум 2G для всех ваших приложений.

person Dan Higham    schedule 22.11.2012

У меня была та же проблема, но vmc API изменился и будет заменен на cf.

К настоящему времени способ увеличить память вашего приложения — выполнить vmc scale [APP] --memory MEMORY. Например, если вы хотите увеличить размер вашего приложения до 1G, команда будет vmc scale yourappname --memory 1G

person maureyes    schedule 04.05.2013