web-dev-qa-db-ja.com

permgenスペースを増やす

Tomcat 6.0を使用していますが、Tomcatの起動中ではなくインデックス作成中に、permgenスペースエラーが発生します。
どうすればそのスペースを増やすことができますか?

ありがとう

87
Blanca

以下を使用できます。

-XX:MaxPermSize=128m

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

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

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

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

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

142
Peter Tillemans

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

11
Paroksh Saxena

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

3
user3375152

メモリ設定が使用されていないことがわかった場合、メモリ設定を変更するために、\ binフォルダのTomcat7wまたはTomcat8wを使用しました。次に、次のポップアップが表示されます。

Tomcat monitor

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

2
Kevin STS

Debianのようなディストリビューションでは、/etc/default/Tomcat[67]で設定します

0
der_do