Version1

Tomcatのメモリ割り当て

-- 2016.01.07 --

「OutOfMemoryError: Java heap space」や「OutOfMemoryError: PermGen space」が発生した場合に参考にして下さい。


Tomcatのヒープ領域(メモリの割り当て)が、小さすぎるとTomcatの実行が遅くなったり、OutOfMemoryErrorが発生する恐れがあります。

今回はApache、IIS等のHTTPサーバと連携させていることを前提に、Tomcatのヒープ領域の設定をご紹介いたします。


※tomcatを停止した上で作業してください。
※データのバックアップは必ず取った上で作業してください。


前提条件
  • GroupSessionがインストール済みであること。
  • Apache HttpサーバとTomcatを連携した環境で使用していること。

Tomcatに割り当てるメモリを増やす

Tomcatに割り当てるメモリの設定を環境変数に設定し増やします。
JDKのバージョンごとに設定値が違います。

[JDK8]
JDK8ではメモリ最大使用量、メモリ初期使用量を設定します。

設定する値は下記を目安にしてください。


  • メモリ最大使用量(-Xmx)搭載メモリの半分程度。
  • メモリ初期使用量(-Xms)Xmxで指定した数値の半分位。

例として搭載メモリが1Gの場合は「-Xmx512m -Xms256m」になります。


Tomcatを起動するユーザの環境変数に下記を追加します。

  • 変数名: CATALINA_OPTS
  • 変数値: -Xmx512m -Xms256m

Windowsの場合は
コントロールパネル→システム→「詳細設定」タブ→環境変数 で設定してください。


Linuxの場合は下記の様に設定してください。
export CATALINA_OPTS='-Xmx512m -Xms256m'


Monitor Tomcat を使用してTomcatを起動している方は、以下のように設定してください。

  • Initial memory pool(メモリ初期使用量): 256
  • Maximum memory pool(メモリ最大使用量): 512

TomCatMonitor

[JDK6,7]
JDK6,7ではパーマネント領域、メモリ最大使用量、メモリ初期使用量を設定します。

設定する値は下記を目安にしてください。


  • パーマネント領域(-XX:MaxPermSize)搭載メモリの8分の1程度(初期値:64m)。
  • メモリ最大使用量(-Xmx)搭載メモリの半分程度。
  • メモリ初期使用量(-Xms)Xmxで指定した数値の半分位。

例として搭載メモリが1Gの場合は「-XX:MaxPermSize=128m -Xmx512m -Xms256m」になります。


Tomcatを起動するユーザの環境変数に下記を追加します。

  • 変数名: CATALINA_OPTS
  • 変数値: -XX:MaxPermSize=128m -Xmx512m -Xms256m

Windowsの場合は
コントロールパネル→システム→「詳細設定」タブ→環境変数 で設定してください。


Linuxの場合は下記の様に設定してください。
export CATALINA_OPTS='-XX:MaxPermSize=128m -Xmx512m -Xms256m'


Monitor Tomcat を使用してTomcatを起動している方は、以下のように設定してください。

  • -XX:MaxPermSize(パーマネント領域): 128(Java Optionsに追記)
  • Initial memory pool(メモリ初期使用量): 256
  • Maximum memory pool(メモリ最大使用量): 512

TomCatMonitor
終わり

Tomcat、Apacheを起動し、動作を確認してください。


Copyright 日本トータルシステム株式会社