4

Windows Server 2008 R2でTomcat 7.0.33を実行しています (WindowsサービスとしてTomcatをインストールしました)

  • JDK バージョン: jdk1.6.0_25 64-bit
  • Tomcat オプション:

    1. Java 仮想マシン: C:\Program Files\Java\jre6\bin\server\jvm.dll (ところで、jre 内にクライアント フォルダーがありません)
    2. 初期メモリ プール: 1000 MB
    3. 最大メモリ プール: 2000 MB

      サーバーの状態を確認すると、構成したメモリをサーバーが使用していることがわかります。

    4. 環境変数 (SYSTEM VARIABLES) 構成:

      • JAVA_HOME: C:\Program Files\Java\jdk1.6.0_25
      • 道: ...;%JAVA_HOME%\bin;....

CATALINA_HOMEJAVA_OPTSシステム変数も追加する必要がありますか?

問題:私は 2 つの Web アプリケーションAPP1、* APP2を持っています* それぞれを個別に展開すると、そのメモリ使用量を見つけることができます

APP1 = 198MB APP2 = 104MB

アプリケーションに関する情報:

APP1,APP2 : ライブラリに他の小さな Maven Spring アプリケーションを含む Spring Maven アプリケーション。

APP1: APP2 が使用する Web サービスが含まれています。

両方を同じ tomcat インスタンスにデプロイしようとすると、常に

java.lang.OutOfMemoryError: PermGen space

この問題の原因を教えてください。

4

4 に答える 4

10

解決策は、初期メモリプールと最大メモリプールを設定する以外-XX:MaxPermSize=1000mに、JavaタブのJavaオプションに追加することでした。

于 2012-12-23T08:16:25.700 に答える
9

おそらく、Tomcat インスタンスの MaxPermSize 設定を設定または増やす必要があります。MAVEN_OPTS は Tomcat とは関係がないことに注意してください。これらは Maven コマンドライン プロセス (mvn) のオプションです。アプリケーションが「maven」アプリケーションであるという事実は、Maven はアプリケーションの実行には関与せず、アプリケーションのビルドのみに関与するため、実行時には何の意味もありません。

Tomcat インストールの\binフォルダーに、「tomcat7.exe」というアプリケーションがあるはずです。これを使用して、Tomcat サービスの設定を更新できます。

次のようなものを試してください

tomcat7.exe //US//[Tomcat サービスの名前] --JvmOptions=-Xmx2g -Xms1g -XX:MaxPermSize=512m

編集:上記のステートメントは、2行ではなく1行にする必要があります...

于 2012-12-20T12:03:58.703 に答える
3

PermGen スペースを増やす必要があります。パラメーターに次のようなものを追加-XX:MaxPermSize=128mします (必要に応じて、より多くの perm gen スペースを予約できます)。-Xmxとの-Xms設定はヒープ用ですが、ここでは個別に管理されるPermGen スペースが不足しています。

于 2012-12-20T12:52:58.787 に答える