2013-03-22 4 views
1

У меня есть приложение Grails, которое я упаковал с помощью военной команды: grails war. Мне нужно развернуть его на удаленную машину под управлением Tomcat.Grails Tomcat OutofMemory error

Когда я выполняю развертывание разворота (копирование файла WAR в C:\Program Files (x86)\apache-tomcat-7.0.37\webapps) и запуск C:\Program Files (x86)\apache-tomcat-7.0.37\bin\startup.bat Я получаю несколько ошибок OutofMemory с пространством PermGem и Heap.

Как это исправить?

ответ

4

Что я обычно делаю при запуске Tomcat:

export JAVA_OPTS="-Xms1024m -Xmx2024m -XX:MaxPermSize=512m"; export CATALINA_OPTS="-Xms1024m -Xmx2024m -XX:MaxPermSize=512m"; /etc/init.d/tomcat6 restart; tail -f /var/lib/tomcat6/logs/catalina.out 

Это устраняет все проблемы с памятью. У меня есть 6 приложений Grails, работающих с этой конфигурацией.

+0

Вам не нужно устанавливать CATALINA_OPTS, если JAVA_OPTS указаны точно так же (CATALINA_OPTS - JAVA_OPTS только для команды «start»). –

+0

и вы вызываете это из командной строки? –

+0

Да из командной строки. путь /etc/init.d/tomcat6 может отличаться, если вы не используете ubuntu. –

2

На сервере Tomcat, добавьте системные переменные среды: JAVA_OPTS -Xmx512m

Кроме того, в приложении Grails в конфе/BuildConfig.groovy добавить строку в следующей строке в верхней части: grails.tomcat .jvmArgs = ["-Xms256m", "-Xmx1024m", "-XX: PermSize = 512m", "-XX: MaxPermSize = 512m"]

Это похоже на решение многих проблем, с которыми я столкнулся.

0

Если вы используете Ubuntu, я рекомендую редактировать/etc/default/tomcat6 (или tomcat7 в зависимости от того, что вы используете).

Вокруг линии 20 находится образец линии JAVA_OPTS; раскомментируйте его и отредактируйте в соответствии с вашим оборудованием.

Я получил мое работает как:

JAVA_OPTS="-Djava.awt.headless=true -Xmx1024m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC" 

Какие шапки RAM в использовании на концерте, и наборы permsize к 512m.

0

Используйте значение по умолчанию на Grails Build.config изменений на данный момент:

grails.project.fork = [ 
// configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required 
// compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true], 

// configure settings for the test-app JVM, uses the daemon by default 
test: [maxMemory: 768, minMemory: 64, debug: true, maxPerm: 256, daemon:true], 
// configure settings for the run-app JVM 
run: [maxMemory: 500, minMemory: 64, debug: true, maxPerm: 256, forkReserve:false], 
// configure settings for the run-war JVM 
war: [maxMemory: 500, minMemory: 64, debug: true, maxPerm: 256, forkReserve:false], 
// configure settings for the Console UI JVM 
console: [maxMemory: 500, minMemory: 64, debug: true, maxPerm: 256] 

]

0

, если вы используете сервис на основе кот, то вы не можете иметь catalina.bat файла в папке бен , Затем попробуйте добавить эти варианты java. enter image description here