利用可能なメモリを増やして out of memory エラーを修正する方法

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

プラットフォームについて: Server と Data Center のみ - この記事は、サーバーおよびデータセンター プラットフォームのアトラシアン製品にのみ適用されます。

目的

Jira、Crowd、および Confluence のような Java アプリケーションは、オペレーティング システムで直接実行されるのではなく、"Java 仮想マシン" (JVM) 内で実行されます。開始されると、Java 仮想マシンには一定量のメモリが割り当てられ、それによって Confluence などのアプリケーションが利用できるようになります。既定では、サーバーで実際に使用可能なメモリ容量にかかわらず、Java 仮想マシンには 64 MB のメモリが割り当てられます。64 MB はほとんどの Confluence インストールでは不適切であるため、これを増加させる必要があります。

診断

ここをクリックして展開...

エラー メッセージ タイプの確認

どのようなタイプの OutOfMemory エラーが発生しているかを特定するため、atlassian-confluence.log を確認します。次の 3 種類のメッセージが一般的です。

  1. ヒープ領域
  2. PermGen スペース
  3. GC オーバーヘッド
tip/resting Created with Sketch.

このドキュメントでは、PermGen およびヒープ領域エラーに対応するためにメモリを増加させる方法について説明します。それぞれの問題の根本原因に対応するための方法については、上記のリンクをご利用ください。

GC オーバーヘッドについては、「'java.lang.OutOfMemoryError GC overhead limit exceeded' により Confluence がクラッシュする」をご参照ください。

Confluence の利用パターンの把握

In Confluence, go to Confluence Administration > System Information, and look at the memory graph during times of peak usage:

このサーバーには最大 650 Mb、最小 256 m が割り当てられています。ここで最小値を確認できます。設定が反映されているかを確認したい場合、この画面を利用できます。

利用可能なシステム メモリの決定

Windows の場合

プログラムの終了ダイアログ (ctrl + alt + delete) でパフォーマンス タブを選択します。

利用可能と表示されている量が、Confluence に割り当て可能なメモリ量 (キロバイト単位) です。このサーバーでは約 214 Mb を割り当てることができます。

Linux の場合

次のコマンドを実行します。

cat /proc/meminfo 

これによってメモリの利用状況を確認します。

サーバーで利用可能な容量を超えて -Xmx を設定すると、物理メモリ不足から OutOfMemoryErrors が発生する可能性があります。これが発生した場合、スワップ容量が使用され、パフォーマンスが大幅に低下します。

ガイダンス

Confluence のスタンドアロン版で用意されている既定値はほとんどのインストールで有効です。詳細については「アプリケーション サーバーのメモリ設定の管理」および「サーバー ハードウェア要件ガイド」をご参照ください。

ソリューション

ステップ 1: 利用可能なメモリ量を増加させる

We aren't really able to give a concrete recommendation for the amount of memory to allocate, because that will depend greatly on your server setup, the size of your user base, and their behavior. You will need to find a value that works for you, i.e. no noticeable GC pauses, and no OutOfMemory errors.

ご参考までに、メモリ (ヒープ) 割り当てを変えるためにもっともよく使用される 3 つのパラメータは次のものです。

  • Xms - ヒープの最小サイズ
  • Xmx - ヒープの最大サイズ
  • -XX:MaxPermSize - PermGen の最大サイズ (これは Java 8 以降では使用されません)

    In case you need advice regarding how much memory you should use please check this page for some examples of hardware specifications.

If you do decide to increase the memory settings, there are a few general guidelines to follow:

  • OutOfMemory エラーが発生しなくなるまで、Xmx を少しずつ (例: 一度に 512 mb) 増やします。これは、サーバーで適切に Garbage Collect 可能な許容量を超えてヒープを増加させると、パフォーマンスやフリーズなどの別の問題が発生する場合があるためです。
  • エラーが " java . lang . OutOfMemoryError : PermGen space" の場合、-XX:MaxPermSize パラメータをエラーが発生しなくなるまで 256 mb ずつ増加させます。

  • エラーが PermGen を参照していない場合、これを増加させる必要はありません。PermGen はクラスを保管するために使用され、一般にサイズは静的であり、Java 8 で削除されました。詳細についてはこちらをご参照ください。
  • Xms と Xmx を同じ値に設定することを検討します。これにより、各コレクションでヒープを小さくするためのリサイズを試行することがなくなるため、GC が発生するまでの時間を縮めることができます。
tip/resting Created with Sketch.

詳細情報については「ガベージ コレクション (GC) チューニング ガイド」をご参照ください。

  • Xms および Xmx の値は、ギガバイトまたはメガバイト形式で設定できます。

これらの値をメガバイトで設定する場合は、意図したメモリ レベルを 1024 で乗算した値を設定します。たとえば、メモリを 2 ギガバイトで設定したい場合、Xms と Xmx を 2048m (2GB x 1024MB) に構成します。

-Xms2048m -Xmx2048m

同じ例でギガバイトを使う場合は次のようにします。

-Xms2g -Xmx2g

(warning) 値をギガバイトで設定する場合、.5 のインクリメントは使わないようにします。これを使うと JVM が適切に開始されない可能性があります。

Linux


ここをクリックして展開...

Linux インストールでヒープまたは PermGen 領域のメモリを増やす方法

  1. Confluence をシャットダウンします。
  2. <confluence-install>/bin/setenv.sh を編集します。
  3. 次のセクションを見つけます。
  • CATALINA_OPTS="-Xms1024m -Xmx1024m ${CATALINA_OPTS}" in Confluence 7.12 or above
  • CATALINA_OPTS="-Xms1024m -Xmx1024m -XX:+UseG1GC $CATALINA_OPTS" in Confluence 5.8 or above
  • CATALINA_OPTS="$CATALINA_OPTS -Xms1024m -Xmx1024m -XX:MaxPermSize=256m -XX:+UseG1GC" (Confluence 5.6 または 5.7)
  • JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxPermSize=256m (過去のバージョン)
  1. 上述の「診断」を参照し、適切な値を入力します。Xmx が最大値、Xms が最小値、MaxPermSize が PermGen です。
  2. Confluence を起動します。


Windows (.batファイルから起動)


ここをクリックして展開...

Windows で Confluence をサービスとして起動している場合、この手順は使用せずに後述の「Windows サービス」セクションをご参照ください。

この手順は、Confluence をバッチ ファイルで起動している場合にのみご利用ください。Confluence をサービスとして起動している場合、バッチ ファイルは使用されません。

Windowsインストールで .bat ファイルから起動する際にシステム プロパティを設定する方法

  1. Confluence をシャットダウンします。
  2. <confluence-install>/bin/setenv.bat を編集します。
  3. 次のセクションを見つけます。
    • CATALINA_OPTS="-Xms1024m -Xmx1024m -XX:+UseG1GC $CATALINA_OPTS" in Confluence 5.8 or above
    • CATALINA_OPTS="$CATALINA_OPTS -Xms1024m -Xmx1024m -XX:MaxPermSize=256m -XX:+UseG1GC" (Confluence 5.6 または 5.7)
    • JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxPermSize=256m (過去のバージョン)
  4. 上述の 「診断」を参照し、適切な値を入力します。Xmx が最大値、Xms が最小値、MaxPermSize が PermGen です。
  5. Confluence を起動します。


Windows サービス


ここをクリックして展開...

Confluence を Windows サービスとして自動的に起動している場合、コマンド ライン経由または Windows レジストリからシステム プロパティを構成できます。

Windows サービスのプロパティをコマンド ラインから設定する

Windows サービスのプロパティをコマンド ラインから設定する

  1. Identify the name of the service that Confluence is installed as in Windows ( Control Panel > Administrative Tools > Services ):

    (info) In the above example, the SERVICENAME is: JIRA030908110721 (this is a JIRA screenshot, but the same applies to Confluence)
  2. Start >> Run >> type in 'cmd' >> Enter でコマンド ウィンドウを開きます。
  3. cd to the bin directory of your Confluence instance
  4. Run (for Tomcat 9, change as necessary for earlier versions):

    tomcat9w //ES//<Your_Service_Name>
    

    .
    (info) If you are under confluence 5.5, it would be tomcat6w //ES//JIRA030908110721 instead of tomcat8w (this is a JIRA screenshot, but the same applies to Confluence)

  5. Click on the Java tab to see the list of current start-up options:
  6. ここでメモリの最大割り当て量を設定します。 

Windows レジストリで Windows サービスのプロパティを設定する

Windows の一部のバージョンには、Java 変数をサービスに追加するオプションがありません。この場合、レジストリ内のオプション一覧を表示してプロパティを追加する必要があります。

Windows サービスのプロパティを Windows レジストリで設定する方法

  1. Go to Start >> Run, and run "regedit32.exe"
  2. Find the Services entry:
    32-bit: HKEY_LOCAL_MACHINE >> SOFTWARE >> Apache Software Foundation >> Procrun 2.0 >> Confluence
    64-bit: HKEY_LOCAL_MACHINE >> SOFTWARE >> Wow6432Node >> Apache Software Foundation >> Procrun 2.0 >> Confluence
  3. 既存のプロパティを変更する (特に Xmx メモリを増やす) には、適切な値をダブルクリックします。
  4. To change additional properties, double-click options. Note: Make sure to add only one argument per line.
  5. ここでメモリ割り当てを変更します (-XX:MaxPermSize=512m)。


ステップ2: 設定の確認

適用されている設定を確認するには、「システム情報の表示」を確認します。"Java Runtime Arguments" というセクションが表示されます。

Xmx (最大) および Xms (最小) 設定を探します。


代替方法として、Linux で次のコマンドを実行します。

ps -aux | grep java

これによって環境パラメータを確認します。

最終更新日 2021 年 9 月 10 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.