Q. Tomcatのメモリ設定について

GUIによるメモリ設定

SecureAssist Enterprise Portalのデプロイ時に、デフォルトのTomcatのメモリの割り当てが少なすぎて、パフォーマンスを低下させる潜在的なメモリリークの原因となる場合があります。Tomcatのメモリ設定を行うことで、これらの問題を軽減することができます。
<CATALINA_HOME>\bin\ ディレクトリの TomcatXw.exe を実行して、Tomcatのプロパティーを設定するGUIインターフェイスを立ち上げます(Xは起動中のTomcatのバージョンです)。そして「Java」タブを開いて、以下のJavaのパラメーターを入力します。

-Xms<size> Javaの初期ヒープサイズを設定します
-Xmx<size> Javaの最大ヒープサイズを設定します
-Xss<size> Javaのスレッドのスタックサイズを設定します。

csa-eportl-tomcat-memory-001
*注 – このスクリーンショット中のメモリサイズは単なる例示です。推奨値ではありません。

これに加えて、クラス定義にさらに多くのメモリを割り当てるために、JVMに追加のフラグが必要かもしれません。
もし上記の設定でうまく行かない場合は、さらに次の設定を追加してください。

-XX:PermSize=<256m>
-XX:MaxPermSize=<512m>

これと併せて、JavaがPermGenからクラスをアンロードできるように、(デフォルトでは無効になっている)以下のフラグを設定してください。

-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled

.bat/.sh ファイルによるメモリ設定

TomcatをWindowsサービスではなく .bat または .sh ファイルから起動している場合は、メモリオプションを .bat または .sh ファイルを使ってそれぞれ設定することになります。わかりやすく Tomcat の bin フォルダーに「setenv.bat」または「setenv.sh」という名前のファイルを作成して、メモリ設定のために CATALINA_OPTS を設定します。

Windowsの場合:

set CATALINA_OPTS='-Xms256m -Xmx512m -Xss1024k -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled'

Linuxの場合:

export CATALINA_OPTS='-Xms256m -Xmx512m -Xss1024k -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled'