多くのプラグインを使用して、大規模な Grails Web アプリケーションを作成しました。このアプリケーションを Tomcat サーバー (バージョン 08) にデプロイしましたが、レコードが増え始めると、次のような Java ヒープ メモリ エラーが発生します。
- リクエストの処理中に OutOfMemoryError が発生しました
- JobExecutionException: java.lang.OutOfMemoryError: Java ヒープ領域
- java.lang.IllegalStateException: スレッドにバインドされたキーの値がすでにあります
- GroovyPageView の処理中にエラーが発生しました: タグの実行中にエラーが発生しました: Java ヒープ領域
Tomcat サーバーに割り当てられたヒープ領域を増やすことに関して、次のような Web で利用可能な多くのことを試しました。
- tomcat/bin ディレクトリにファイル 'setenv.bat' をコンテンツ 'setx JAVA_OPTS="-server -Xmx1024m"' で作成しています
- システム環境変数の設定。名前:CATALINA_OPTS 値:-Xms256m -Xmx1024m
- 「set」および「setx」コマンドを使用してこれらの変数を設定します。
BuildConfig.Groovy ファイルの最初の行として次の行を追加しました。
grails.tomcat.jvmArgs= ["-Xms512m", "-Xmx1024m", "-XX:PermSize=512m", "-XX:MaxPermSize=1024m"]
Java-Melody を使用して、リクエスト、メモリ、スレッド プロセスを監視しています。これを使用してこれを確認します:
PS私のサーバーマシンには、異なる複数のアプリケーションが展開されている複数のTomcatサーバーがインストールされています。次に、Tomcat Java 構成で -XX:PermSize=512m -XX:MaxPermSize=1024m と書くことで permGen メモリを増やすことに成功しました。
これに関するヘルプは大歓迎です。