1. ホーム
  2. tomcat

Tomcatのメモリ設定を増やす【重複】について

2023-07-26 09:49:41

質問

重複の可能性があります。

java.lang.OutOfMemoryError "に対処する。PermGen space" エラーの対処

私の開発マシンには 8GB の RAM があり、Apache Tomcat (7.0.29) を実行して、以下の両方をホストしようとしています。 アーティファクトリー (2.6.3) と Jenkins (1.479)を同時に起動しました。Jenkins の必要メモリを調べようとしましたが、彼らの wiki はダウンしているようです。

${TOMCAT_HOME}/bin/catalina.sh に、以下のコマンドを追加しています。

CATALINA_OPTS="$CATALINA_OPTS -server -Xms1024m -Xmx3052m"

これで Tomcat の JVM のサイズを (基本的に) 1GB から 3GB の間に保つことができ、他のもののための十分なスペースが残りました。 Tomcat に Artifactory や Jenkins のための十分なメモリを与え、さらに私が望めば他のものにも使えるようにします。

(価値あることとして、私は同じことを JAVA_OPTS で試してみましたが、まったく同じ結果になりました)。その変更を保存して startup.sh . Tomcat は起動し始め、その後、Tomcat が PermGen のスペースを使い果たしたと OOME が文句を言いながら終了します。

Exception in thread "SocketListener(<hex-stuff>.local.)"
java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: PermGen space
Exception in thread "hudson initialization thread" java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: PermGen space

私はどこで間違っているのでしょうか?これを行う方法について複数の記事を読み、(信じて!)私は正確にそれらに従っています。何か考え、またはこれをさらにデバッグする方法についてのアイデアがあれば教えてください。ありがとうございました。

どのように解決するのですか?

次のように設定してください。

CATALINA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 
-server -Xms1536m -Xmx1536m
-XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m 
-XX:MaxPermSize=256m -XX:+DisableExplicitGC"

{$tomcat-folder}\bin\setenv.sh (に追加します(必要なら作成します)。

参照 http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/ をご覧ください。