0

多くのプラグインを使用して、大規模な Grails Web アプリケーションを作成しました。このアプリケーションを Tomcat サーバー (バージョン 08) にデプロイしましたが、レコードが増え始めると、次のような Java ヒープ メモリ エラーが発生します。

  1. リクエストの処理中に OutOfMemoryError が発生しました
  2. JobExecutionException: java.lang.OutOfMemoryError: Java ヒープ領域
  3. java.lang.IllegalStateException: スレッドにバインドされたキーの値がすでにあります
  4. GroovyPageView の処理中にエラーが発生しました: タグの実行中にエラーが発生しました: Java ヒープ領域

Tomcat サーバーに割り当てられたヒープ領域を増やすことに関して、次のような Web で利用可能な多くのことを試しました。

  1. tomcat/bin ディレクトリにファイル 'setenv.bat' をコンテンツ 'setx JAVA_OPTS="-server -Xmx1024m"' で作成しています
  2. システム環境変数の設定。名前:CATALINA_OPTS 値:-Xms256m -Xmx1024m
  3. 「set」および「setx」コマンドを使用してこれらの変数を設定します。
  4. 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 メモリを増やすことに成功しました。

これに関するヘルプは大歓迎です。

4

1 に答える 1

0

Java タブの bin/tomcat7w.exe ツールでメモリ制限を設定できます。

ただし、Tomcat 8 または同じサーバー上の複数の Tomcat インスタンスで試したことはありません。

お役に立てれば...

于 2014-11-25T11:22:03.443 に答える