これまたは同様の質問をする多くの質問があります。
それらはすべて、実行する必要があるコマンドを提供しますが、私が理解していないのは、このコマンドをどこで書くかです。 Tomcatアプリのヒープスペースを永続的に増やしたい。
このページを読みます http://javahowto.blogspot.com/2006/06/6-common-errors-in-setting-Java-heap.html Tomcatセクションの下
Tomcatサーバーを停止し、環境変数CATALINA_OPTSを設定してから、Tomcatを再起動します。この変数の使用方法については、Tomcat-install/bin/catalina.shまたはcatalina.batファイルをご覧ください。例えば、
cATALINA_OPTS = -Xms512m -Xmx512mを設定します(Windows、値の前後に ""はありません)
export CATALINA_OPTS = "-Xms512m -Xmx512m"(ksh/bash、値の周りの "")
setenv CATALINA_OPTS "-Xms512m -Xmx512m"(tcsh/csh、値の周りの "")
だから私は行を交換しました
cATALINA_OPTS =を設定します
と
cATALINA_OPTS = -Xms512m -Xmx512mを設定します
しかし、それでもエラーが発生します。
javax.servlet.ServletException:サーブレットの実行が例外をスローしました
根本的な原因
Java.lang.OutOfMemoryError:Java heap space Java.lang.reflect.Array.multiNewArray(Native Method)Java.lang.reflect.Array.newInstance(Array.Java:90)nom.tam .util.ArrayFuncs.newInstance(ArrayFuncs.Java:1028)nom.tam.fits.ImageData.read(ImageData.Java:259)nom.tam.fits.Fits.readHDU(Fits.Java:573)controller.UploadServlet.retreiveFITSFileFields (UploadServlet.Java:206)controller.ScanServerFiles.doPost(ScanServerFiles.Java:39)javax.servlet.http.HttpServlet.service(HttpServlet.Java:637)javax.servlet.http.HttpServlet.service(HttpServlet.Java:717) )
あなたの変更はうまく機能しているかもしれません。アプリケーションに大量のメモリが必要ですか?スタックトレースには、画像関連の機能がいくつか表示されます。
このエラーは、すぐに大きなファイルで発生するか、またはいくつかのリクエストの後で発生するかのどちらかだと推測しています。
エラーがすぐに発生した場合は、メモリをさらに増やすか、1つのファイルにメモリが必要な理由を調べることができます。
数回のリクエストの後にエラーが発生した場合、メモリリークが発生する可能性があります-オブジェクトがガベージコレクタによって回収されていない場合。 JProfiler などのツールを使用すると、VMで使用されているメモリ量を監視でき、そのメモリを使用しているものとオブジェクトが存在しない理由を確認できます。ガベージコレクターによって再生されます。
ディストリビューションにあるファイルを変更せずにそれを行うメカニズムがあります。別のファイル%CATALINA_HOME%\bin\setenv.bat
または$CATALINA_HOME/bin/setenv.sh
を作成して、そこに環境変数を配置できます。さらに、メモリ設定はTomcatではなくJVMに適用されるため、代わりにJava_OPTS
変数を設定します。
set Java_OPTS=-Xmx512m
まず、Tomcatアプリケーションのメモリ設定のみを変更することはできませんが、すべてのTomcatインスタンスのメモリ設定を変更できます。
Tomcatをコンソールから(startup.batを使用して)実行している場合、catalina.batを編集し、CATALINA_OPTSをいじる必要があります。例えば:
set CATALINA_OPTS=-Xms512m -Xmx512m
Tomcatを再起動すると、新しい設定が適用されます。
それでもOutOfMemoryErrorが発生する場合は、特定の瞬間にアプリケーションが必要とするメモリ量を知る必要があります(nom.tam.util.ArrayFuncs ...)。アプリケーションを最適化するか、Tomcatに提供するメモリを増やす必要があります。
-Xms64m -Xmx256m
catalina.sh
ファイルに次の行を追加する必要があります。
export CATALINA_OPTS="-Xms512M -Xmx1024M"
[〜#〜] update [〜#〜]:catalina.sh
コンテンツは明確に言う-
このスクリプトで変数を設定しないでください。代わりに、それらをCATALINA_BASE/binのスクリプトsetenv.shに入れて、カスタマイズを別々に保ちます。
したがって、代わりにsetenv.shに上記を追加できます(ファイルが存在しない場合は作成します)。
windowsを使用している場合は、非常に簡単です。システム環境変数に移動するだけです(右クリックコンピューター>プロパティ>高度なシステムパラメーター>環境変数)。名前= CATALINA_OPTSおよび値= -Xms512m -Xmx1024mの新しいシステム変数を作成します。 Tomcatを再起動してお楽しみください!
最も簡単な方法は次のとおりです:(Linux/Ububuntu e.t.cの場合)
Tomcat binディレクトリに移動します。
cd /opt/Tomcat8.5/bin
binディレクトリ「setenv.sh」の下に新しいファイルを作成し、その中に記載のエントリを保存します。
export CATALINA_OPTS="$CATALINA_OPTS -Xms512m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx2048m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"
コマンドを発行します:
./catalina.sh run
カタリナログファイルには、次のようなエントリがあります。
INFO [main] VersionLoggerListener.log Command line argument: -Xms512m
INFO [main] VersionLoggerListener.log Command line argument: -Xmx2048m
INFO [main] VersionLoggerListener.log Command line argument: -XX:MaxPermSize=256m
上記の変更が行われたことを確認します。
また、「Xms512m」および「-Xmx2048m」の値は、setenv.shファイルで適宜変更できます。
Tomcatの起動も2つのステップで実行できます。 cd /opt/Tomcat8.5/bin
Step #1
run ./setenv.sh
Step #2
./startup.sh
この追加行をcatalina.bat
ファイルに設定するだけです
行なし:143
set "CATALINA_OPTS=-Xms512m -Xmx512m"
Tomcatサービスを再起動します
Windowsサービスの場合、Tomcatのバージョンに応じてTomcat9w.exe(または6w/7w/8w)を実行する必要があります。まず、Tomcatが停止していることを確認します。次に、Tomcat9w.exeをダブルクリックします。 [Java]タブに移動します。64ビットWindowsで64ビットJavaおよび64ビットTomcatを使用していることがわかっている場合は、 512.タスクマネージャーの監視を行って、設定の高さを決定する必要があります。2019年に開発されたほとんどのアプリでは、初期メモリプール1024、最大メモリプール2048を推奨します。コンピュータに大量のRAMがある場合...必要なだけ自由に移動してください。また、この回答を参照してください: 最大メモリプールサイズを増やす方法?Apache Tomcat 9