Version1

Tomcatの簡単なチューニング

-- 2010.07.06 --

Tomcatはデフォルト設定のままだと不要な機能が多く起動されています。

高機能なサーバ機で動作させていれば気になりませんが、社内で古くなったPC等の
低スペックなPCで動作させている場合、不要な機能を停止することで少しだけ レスポンスが良くなります。


今回はApache、IIS等のHTTPサーバと連携させていることを前提に、最小限の設定でTomcatを起動させる 設定をご紹介いたします。


※tomcatを停止した上で作業してください。
※データのバックアップは必ず取った上で作業してください。
下記の内容はTomcatのインストール先を${TOMCAT_HOME}として記述しています。


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

Tomcatのサンプルアプリケーションを削除する

Tomcatのサンプルアプリケーションは使用しないので削除します。

${TOMCAT_HOME}/webapps/内にあるフォルダをgsessionフォルダを除いて全て削除します。


webappsディレクトリ

Tomcatの不要な機能を起動しない様に設定する

HTTPサーバ機能等の使用しない機能は全て削除し、最小限の構成で起動する様に設定します。
またTomcatとApacheのコネクタが常にプールされている状態にします。

${TOMCAT_HOME}/conf/server.xml



<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">

  <Service name="Catalina">

    <Connector port="8009" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               acceptCount="100" 
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

    <Engine name="Catalina" defaultHost="localhost">

      <Host name="localhost" appBase="webapps"
       unpackWARs="false" autoDeploy="false"
       xmlValidation="false" xmlNamespaceAware="false">

      </Host>

    </Engine>

  </Service>

</Server>

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

Tomcatに割り当てるメモリの設定を環境変数に設定し増やします。
ここではメモリ最大使用量とメモリ初期使用量を設定します。

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


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

例として搭載メモリが1GB(1024MB)の場合は「-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
終わりに

Tomcat、Apacheを起動し、アクセスすると少し動作が速くなったのがわかると思います。


本ドキュメントはTomcatに焦点を当たものですが、OSの設定を見直すことでもまた改善できると思います。
例えばUnix系のOSを使用している場合は、ランレベルや起動するデーモンを見直すことや、使っていない場合はIPV6の設定をOFFにすることで
も改善されると思います。


最近のubuntuやfedora等のkernel2.6のディストリビューションではIPV6がデフォルトで有効になっています。
使わないのであればOFFにすることをお勧めします。

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