permgenスペースを増やす


88

私はtomcat 6.0で作業しています。(tomcatを開始しているときではなく)インデックスを作成しているときに、permgenスペースエラーが発生します。
どうすればそのスペースを増やすことができますか?

ありがとう


以前に同様の質問を確認しましたが、助けにはなりません。-XX:NewSize = 2.125mはどこに行くのですか?
ブランカ

回答:


142

使用できます:

-XX:MaxPermSize=128m

スペースを増やすため。しかし、これは通常、避けられないことを延期するだけです。

PermGenのガベージコレクションを有効にすることもできます。

-XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled

通常、これは多くの再デプロイを行うときに発生します。インデックス作成のようなものを使用していることに驚いています。virtualvmまたはjconsoleを使用してPerm genスペースを監視し、インデックス作成のウォームアップ後にレベルが横ばいになることを確認します。

おそらく、IBM JVMのような別のJVMへの変更を検討する必要があります。永続的な世代はなく、この問題の影響を受けません。


ありがとう!! しかし、どこに書いておくべきでしょうか?ここで1つのファイルを推測します:tomcat / conf間違っていますか?
ブランカ

1
Tomcatの場合、これらのオプションを連結した値として環境変数CATALINA_OPTSを作成できます。起動スクリプトは、tomcatを起動する前にこれらをJavaコマンドラインに追加します。JVMはその時点ですでに構成されているため、tomcat構成からこれを行うことはできません。
Peter Tillemans、2010年

2
FreeBSDの場合は、/ etc / rc.confファイルにオプションを追加します。まず、tomcat起動スクリプトを読んで、探している正確なパラメーターを確認します。
Brian Knoblauch、2012年

3
OpenJDK 7では、CMSPermGenSweepingEnabledは非推奨になり、CMSClassUnloadingEnabledを採用
Petr

12

tomcatの場合、次を使用してpermGemスペースを増やすことができます。

 -XX:MaxPermSize=128m

このため、tomcat / binフォルダーにsetenv.shという名前のファイルを作成し(まだ存在しない場合)、次の行を含める必要があります。

   export JAVA_OPTS="-XX:MaxPermSize=128m"

リファレンス:http : //wiki.razuna.com/display/ecp/Adjusting+Memory+Settings+for+Tomcat


1
export JAVA_OPTS="-XX:MaxPermSize=128m"Clojure + lein replで私のために働いた
ジェフ

3

IDEのVM引数を使用して値を増やすこともできます。私の場合、Eclipseで実行されているTomcat v7.0を使用しています。これを行うには、サーバー(Tomcat v7.0)をダブルクリックします。「起動設定を開く」リンクをクリックします。[引数]タブに移動します。-XX:MaxPermSize = 512mをVM引数リストに追加します。「適用」をクリックしてから「OK」をクリックします。サーバーを再起動します。


3

メモリ設定が使用されていないことがわかり、メモリ設定を変更するために、\ binフォルダーのtomcat7wまたはtomcat8wを使用しました。

Tomcatモニター

Javaタブをクリックして、arguments.restart tomcatを追加します。


@JérémieBIには、画像を直接追加するための十分な評判ポイントがありません。
ケビンSTS

0

Debianのようなディストリビューションでは、それを /etc/default/tomcat[67]

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.