4

で実行すると正常に動作する基本的なアプリがありgrails run-app、を使用して実行したいと思いgrails run-warます。java.lang.OutOfMemoryError: PermGem spaceしかし、開始直後は、要求に応じて、常に有名なTomcatのエラーが発生します。

さて、私は値を変更する必要があることを知っているので、グーグル( 、、および)のPermSize後に見つけたすべての方法を試しました。そして今、私は次のスクリプトを持っています:JAVA_OPTSGRAILS_OPTSgrails.tomcat.jvmArgs

export JAVA_OPTS="-Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m"
export GRAILS_OPTS="-Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m"
grails -Dgrails.tomcat.jvmArgs="-Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m" run-war

しかし、それは役に立ちません。まだjava.lang.OutOfMemoryError: PermGen space最初のリクエストがあります。

私が間違っているのは何ですか?PermSizeGrails 2.0.1用に設定する他の方法はありますか?

更新:実行ps -ef | grep javaして、Grailsが実際にパラメーターを取得したことを確認しましたが、tomcatに対して、このパラメーターなしで新しいプロセスを実行しました。

4

2 に答える 2

13

次の場所で構成する必要があることがわかりましたBuildConfig.groovy

grails.tomcat.jvmArgs= ["-Xms256m",  "-Xmx1024m", "-XX:PermSize=512m", "-XX:MaxPermSize=512m"]

今では正常に動作しています。

于 2012-04-25T12:41:36.607 に答える
1

後で参照できるように、JDKに付属の2つのコマンドを使用して、 jvmgrails.tomcat.jvmArgsプロセスが実行されているフラグを簡単に確認できます。 javaで実行されているすべてのプロセスを示します(これを通常とjps比較してgrailsプロセスを見つけるのは簡単で、実行中のJVMプロセスのすべてのシステムプロパティとフラグ(メモリ引数を含む)をダンプします)。または、プロセスが期待するすべての値で実行されているかどうか。psjinfo <PID>

于 2012-04-25T15:28:27.160 に答える