Как убедиться, что Tomcat6 читает CATALINA_OPTS в Windows?

У меня Tomcat6 работает на машине Windows2003. Я развернул 2 приложения Grails на этом сервере и вскоре заметил, что все дает сбой через некоторое время после развертывания с классической ошибкой PermGen.

java.lang.OutOfMemoryError: PermGen space
 java.lang.ClassLoader.defineClass1(Native Method)
 java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
 java.lang.ClassLoader.defineClass(ClassLoader.java:616)
 org.codehaus.groovy.reflection.ClassLoaderForClassArtifacts.de 
...

Итак, я нашел общее решение этой проблемы: увеличение кучи и пространства для перманента с помощью:

set CATALINA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m"

Добавлено в C: \ apache-tomcat-6.0.26 \ bin \ catalina.bat. К сожалению, это не сработало, но проблема в том, что я не уверен, что Tomcat поднимает его. Я проверил различные журналы, но эти параметры никогда не распечатываются. Есть ли способ зарегистрировать их и убедиться, что Tomcat их прочитал?

РЕДАКТИРОВАТЬ: Я попытался добавить следующие параметры JVM с помощью tomcat6w.exe:

-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled 
-XX:+UseConcMarkSweepGC

И ничего не изменилось. Я получаю permGen через 2-3 минуты безотказной работы. Есть еще идеи?

Ура! Мулоне

6
задан Mulone 27 August 2010 в 12:05
поделиться